Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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 AVL树回溯插入/删除操作-时间效率_Java_Algorithm_Data Structures_Avl Tree - Fatal编程技术网

Java AVL树回溯插入/删除操作-时间效率

Java AVL树回溯插入/删除操作-时间效率,java,algorithm,data-structures,avl-tree,Java,Algorithm,Data Structures,Avl Tree,在过去的几天里,我一直在努力思考这个计划。如有任何意见,我将不胜感激 假设我有一个堆栈,其中包含对特定AVL树执行的所有最后操作。(包括指向所有节点的指针) 我希望能够恢复以下两种操作- 1) 插入-将其插入到树中并保持平衡(将操作信息推送到堆栈中) 2) delete-获取一个节点并从树中删除引用(将操作信息推送到堆栈中) 在这两项行动之后,将出现再平衡。(这不是问题) 我的问题是 -我们对删除法和插入法进行回溯的效率如何 用于插入: 我得到一个指向“插入类型”所需节点和案例编号的指针

在过去的几天里,我一直在努力思考这个计划。如有任何意见,我将不胜感激


假设我有一个堆栈,其中包含对特定AVL树执行的所有最后操作。(包括指向所有节点的指针)

我希望能够恢复以下两种操作-

1) 插入-将其插入到树中并保持平衡(将操作信息推送到堆栈中)

2) delete-获取一个节点并从树中删除引用(将操作信息推送到堆栈中)

在这两项行动之后,将出现再平衡。(这不是问题)


我的问题是 -我们对删除法和插入法进行回溯的效率如何


用于插入:

我得到一个指向“插入类型”所需节点和案例编号的指针

从我的预期来看,更糟糕的情况是,当您需要删除节点并进行“双”旋转以再次平衡树时。基本上是O(1)

删除:

我得到了一个指向“删除类型”所需节点和案例编号的指针

从我的预期来看,更糟糕的情况是在移除节点后需要重新平衡树h次。 基本上O(对数(n))

我错过什么了吗? 另一件让我困惑的事情是欧米茄分析,我们怎么能在这里考虑欧米茄?不一样吗

谢谢,祝你有愉快的一天