Преобразование двоичного дерева поиска в максимальную кучу не работает, пока вставляется каждый узел в кореньJAVA

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

Сообщение Anonymous »

Мне нужно преобразовать двоичное дерево поиска в максимальную кучу в Java. Мне это понравилось,

Код: Выделить всё

public Node insertNodeToTree(Node root, int count, String word) {
if(root == null) {
return root = new Node(word,count);
}
//go to
if(root.count < count) {
root.right = insertNodeToTree(root.right, count, word);
} else {
root.left = insertNodeToTree(root.left, count, word);
}
return root;
}
для добавления каждого узла в BST, затем выполнило кучу следующим образом. В приведенном ниже коде переменная index является статической и глобальной.

Код: Выделить всё

public static void heapifying(Node node, Vector vec) {
if(node == null) {
return ;
}
heapifying(node.left, vec);
heapifying(node.right, vec);
index = index+1;
node = vec.get(index);
}
В основном

Код: Выделить всё

rootTree = bst.insertNodeToTree(rootTree, 8, "john");
rootTree = bst.insertNodeToTree(rootTree, 12, "juhirdeen");
rootTree = bst.insertNodeToTree(rootTree, 10, "feroz");
rootTree = bst.insertNodeToTree(rootTree, 11, "rush");
Но я не вернул корень максимальной кучи.
Но когда я пытаюсь добавить такой узел, описанный выше метод кучи работает правильно,

Код: Выделить всё

static Node getNode(int data) {
Node newNode = new Node();
newNode.data = data;
newNode.left = newNode.right = null;
return newNode;
}
В основном методе

Код: Выделить всё

Node root = getNode(4);
root.left = getNode(2);
root.right = getNode(6);
root.left.left = getNode(1);
root.left.right = getNode(3);
root.right.left = getNode(5);
root.right.right = getNode(7);
Я не мог понять, что не так с первым способом вызова метода InsertNodeToTree

Подробнее здесь: https://stackoverflow.com/questions/785 ... nsert-each
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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