Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 二叉搜索树的最少运算_Java_Data Structures_Binary Search Tree - Fatal编程技术网

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树。