Я понимаю двоичное дерево поиска для целых чисел, потому что я знаю, что левый дочерний элемент должен быть меньше узла, а правый дочерний элемент должен быть больше узла. Когда дело доходит до типа «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
Двоичное дерево поиска с использованием типа char ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1772709536
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);
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/27286813/binary-search-tree-using-char-type[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия