Я понимаю бинарное дерево поиска на целых числах, потому что я знаю, что левый ребенок должен быть меньше, чем узел, и правый ребенок должен быть больше, чем узел, когда речь идет о «char» или «строке» типа, это совершенно другой случай, мы не можем сказать ('a'
Узлы представляют страницы, я хочу проверить каждую страницу, чтобы определить, является ли пользователь человеком или спамботом. < /p>
Каждая страница может быть связана с еще 2 страницами. Человек пройдет на веб -странице
таким образом, чтобы она сможет перейти на предыдущую страницу или одну из следующих двух страниц, с которыми они связаны. В противном случае они будут классифицированы как спамбот. package stringBtree;
public class StringBinaryTreeSample {
public static void main(String[] args)
{
new StringBinaryTreeSample().run();
}
static class Node
{
Node left;
Node right;
char value;
public Node(char value) {
this.value = value;
}
}
public void run() {
Node rootnode = new Node('A');
System.out.println("Building tree with rootvalue " + rootnode.value);
System.out.println("=================================");
insert(rootnode, 'b' );
insert(rootnode, 'd' );
insert(rootnode, 'c');
insert(rootnode, 'd');
insert(rootnode, 'e' );
insert(rootnode, 'f');
insert(rootnode, 'g');
insert(rootnode, 'h');
insert(rootnode, 'i');
insert(rootnode, 'j');
insert(rootnode, 'k');
insert(rootnode, 'l');
insert(rootnode, 'm');
insert(rootnode, 'n');
insert(rootnode, 'o');
insert(rootnode, 'p');
insert(rootnode, 'q');
System.out.println("\n\nTraversing tree in order");
System.out.println("=================================");
printInOrder(rootnode);
}
public void insert(Node node, char value) {
if (value < node.value) {
if (node.left != null) {
insert(node.left, value);
} else {
System.out.println(" Inserted " + value + " to left of node " + node.value);
node.left = new Node(value);
}
} else if (value > node.value) {
if (node.right != null) {
insert(node.right, value);
} else {
System.out.println(" Inserted " + value + " to right of node " + node.value);
node.right = new Node(value);
}
}
}
public void printInOrder(Node node) {
if (node != null) {
printInOrder(node.left);
System.out.println(" Traversed " + node.value);
printInOrder(node.right);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/272 ... -char-type