Java 二叉搜索树的最少运算
我目前正在按降序向二叉搜索树中添加元素。通过在二叉搜索树中插入Java 二叉搜索树的最少运算,java,data-structures,binary-search-tree,Java,Data Structures,Binary Search Tree,我目前正在按降序向二叉搜索树中添加元素。通过在二叉搜索树中插入TreeNodes,该方法是使用递归的标准方法: private void insert(TreeNode paramTreeNode1, TreeNode paramTreeNode2) { this.operations += 1; if (paramTreeNode2.getData() < paramTreeNode1.getData()) { if (paramTreeNode1.getLeft(
TreeNodes
,该方法是使用递归的标准方法:
private void insert(TreeNode paramTreeNode1, TreeNode paramTreeNode2)
{
this.operations += 1;
if (paramTreeNode2.getData() < paramTreeNode1.getData())
{
if (paramTreeNode1.getLeft() == null)
{
paramTreeNode1.setLeft(paramTreeNode2);
}
else
{
insert(paramTreeNode1.getLeft(), paramTreeNode2); // recursive
}
}
else if (paramTreeNode1.getRight() == null)
{
paramTreeNode1.setRight(paramTreeNode2);
}
else
{
insert(paramTreeNode1.getRight(), paramTreeNode2); //recursive
}
}
private void insert(TreeNode paramTreeNode1,TreeNode paramTreeNode2)
{
这是操作+=1;
if(paramTreeNode2.getData()
但是,此方法当前的操作数大于2000。当按
BST
的降序插入TreeNodes
以减少操作总数时,哪种方法更聪明?这一点尚不清楚。你是说你的树深度是2000?不是,树深度是45,调用insert()
的次数超过了2000次。我在想,必须有一种更有效的方法来编写代码,这样它就不会有这么多操作。使用一些树平衡算法,如红黑树或avl树。