【发布时间】:2011-12-23 11:15:30
【问题描述】:
我有一个按 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;
}
}
这会被认为是自平衡二叉搜索树吗?
【问题讨论】:
标签: java recursion binary-search-tree