Mam tablicę łańcuchów, które są w porządku AZ. Zastanawiałem się, że najlepszym sposobem, aby przejść o sortując je na zrównoważony binarne drzewo poszukiwań. Moją pierwszą myślą jest, aby podzielić się tablicę w pierwszej połowie i drugiej połowie, a następnie posortować je indywidualnie.
Nie powinien być w stanie użyć rekurencyjnej sposób, aby zachować rozdzielając go na pół, aby dostać się do następnego węzła w drzewie? Po prostu nie mogę owinąć głowę wokół niego teraz i że chciałbym zapytać, czy ktoś miał jakieś pomysły. prowadzi mnie we właściwym kierunku lub podać kilka przykładów. Dzięki!
używam moje własne klasy BinaryTree i BinaryTreeNode klasy. EDYTOWAĆ:
public class BinaryTree {
private BinaryTreeNode root;
public void insert(String text) {
root = insertNode(root, text);
}
private BinaryTreeNode insertNode(BinaryTreeNode curNode, String text) {
if (curNode == null) {
BinaryTreeNode newNode = new BinaryTreeNode(text);
//newNode.value = text;
return newNode;
} else {
if (text.compareTo(curNode.value) < 0 ) {
//left child
//use of recursion to properly place Node
curNode.left = insertNode(curNode.left, text);
return curNode;
}
else {
//right
//use of recursion to properly place Node
curNode.right = insertNode(curNode.right, text);
return curNode;
}
}
}
public BinaryTreeNode getRoot() {
return root;
}
public void setRoot(BinaryTreeNode root) {
this.root = root;
}
}
byłoby to uznać za samodzielną równoważenia binarne drzewo poszukiwań?













