Двоичное дерево поиска с использованием типа charJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Двоичное дерево поиска с использованием типа char

Сообщение Anonymous »

Я понимаю двоичное дерево поиска для целых чисел, потому что я знаю, что левый дочерний элемент должен быть меньше узла, а правый дочерний элемент должен быть больше узла, когда дело доходит до типа «char» или «string», это совершенно другое В этом случае мы не можем произносить ('a' < 'b') или любые другие логические операции.
как я могу сравнить значения символов?!

Это мое двоичное дерево http://share.pho.to/89JtW я не мог работать, потому что каждый раз, когда я вставляю в свой код, все узлы вставляются справа от подузла.

узлы представляют страницы, я хочу проверить каждую страницу, чтобы определить, является ли пользователь человеком или спам-ботом.

каждая страница может быть связана с еще двумя страницами. Человек будет перемещаться по
веб-странице таким образом, что сможет перейти на предыдущую страницу или на одну из следующих двух страниц, на которые он связан. В противном случае они будут отнесены к категории спам-ботов.

И этот код я пытаюсь реализовать

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»