C++ 自顶向下splay树的makeEmpty()的时间复杂性

C++ 自顶向下splay树的makeEmpty()的时间复杂性,c++,data-structures,big-o,time-complexity,splay-tree,C++,Data Structures,Big O,Time Complexity,Splay Tree,在中,列出的makeEmpty()函数(删除所有元素)的时间复杂度为O(n)。其实施情况如下: while( !isEmpty( ) ) { findMax( ); // Splay max item to root remove( root->element ); } 考虑到findMax和remove的时间复杂度可能与树的高度成正比,为什么在最坏的情况下需要O(n)个时间 谢谢 三个字:顺序存取定理 因为上面的循环反复移除最大值,它有效地访问

在中,列出的
makeEmpty()
函数(删除所有元素)的时间复杂度为O(n)。其实施情况如下:

 while( !isEmpty( ) )
 {
     findMax( );        // Splay max item to root
     remove( root->element );
 }
考虑到
findMax
remove
的时间复杂度可能与树的高度成正比,为什么在最坏的情况下需要O(n)个时间


谢谢

三个字:顺序存取定理

因为上面的循环反复移除最大值,它有效地访问了序列中的所有元素,所以我非常确定序列访问定理适用