У меня есть массив строк в порядке от A до Z. Мне было интересно, как лучше всего отсортировать их для сбалансированного двоичного дерева поиска. Моя первоначальная мысль состоит в том, чтобы разделить массив на первую половину и вторую половину, а затем отсортировать их по отдельности.
Разве я не должен использовать рекурсивный способ разделения его пополам, чтобы получить следующий узел для дерева? Я просто не могу обдумать это прямо сейчас и подумал, что спрошу, есть ли у кого-нибудь какие-нибудь идеи. чтобы привести меня в правильном направлении или привести несколько примеров. Спасибо!
я использую свой собственный класс BinaryTree и класс BinaryTreeNode. РЕДАКТИРОВАТЬ:
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;
}
}
будет ли это считаться самобалансирующимся двоичным деревом поиска?