Mám pole řetězců, které jsou v pořádku AZ. Říkal jsem si, že nejlepší způsob, jak jít o jejich třídění pro vyváženou binárního vyhledávacího stromu. Moje první myšlenka je rozdělit pole až do první poloviny a druhé poloviny a pak třídit jednotlivě.
Neměl bych být schopen používat rekurzivní způsob, jak udržet rozdělí jej v polovině získat další uzel na stromě? Já prostě nemůžu zabalit hlavu kolem něj právě teď a myslel bych se zeptat, jestli někdo měl nějaké nápady. mě vedou správným směrem, nebo poskytují několik příkladů. Dík!
Já používám svůj vlastní BinaryTree Class a BinaryTreeNode Class. UPRAVIT:
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 to být považováno za Já vyrovnávací strom binárního vyhledávání?













