社区
数据结构与算法
帖子详情
AVL树的删除操作如何实现
RabbitLBJ
2013-03-11 09:41:11
看了几本数据结构的书,上面都没有将AVL树的删除操作是如何实现的?哪位高人能讲讲过程,如果能提供参考代码就更好了,谢谢
...全文
328
2
打赏
收藏
AVL树的删除操作如何实现
看了几本数据结构的书,上面都没有将AVL树的删除操作是如何实现的?哪位高人能讲讲过程,如果能提供参考代码就更好了,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tjweilong
2013-03-11
打赏
举报
回复
全部代码 可以看我空间里上传的资源
tjweilong
2013-03-11
打赏
举报
回复
template<class T> AvlTree<T>& AvlTree<T>:: Delete(const T x) { AvlNode<T>* Temp=NULL;//被删除节点的父节点 int Direction= -1; //如果删除元素为其父的左孩子,则OnlyDelete函数将其设置为0,否则设置为1。该参数第一次右OnlyDelete函数设置,后续右本函数来设置 cout<<"删除元素:"<<x<<endl; OnlyDelete(x,&Temp,Direction); if(!Root) { cout<<"树已经空了,不需要再调整"<<endl; return *this; } if(!Temp) { PRINT_ERROR_MSG("没有找到要删除的元素"); } //运行到这里,Temp即为被删除元素的父节点,从Temp开始向根节点方向进行调整。 int AdjustFlag = 1;//调整标志,如果是0,不调整,如果为1,则进行调整; while(Temp) { if(AdjustFlag == 0) { cout<<"不再需要调整"<<endl; break; } if(Direction == 0) { Temp->Balance -=1; switch(Temp->Balance) { case 0: AdjustFlag = 1; break; case 1: PRINT_ERROR_MSG("删除左子树上节点,删除之后平衡因子为1,这种情况是不存在的"); break; case 2: PRINT_ERROR_MSG("删除左子树上节点,删除之后平衡因子为2,这种情况是不存在的"); break; case -1: cout<<"删除左子树节点,并且删除之后,因子为-1,此时不需要调整"<<endl; AdjustFlag = 0; break; case -2: cout<<"删除左子树节点,并且删除之后,因子为-2,此时需要调整,根据其右边第一个子节点情况来进行调整"<<endl; L_Rotate(Temp,AdjustFlag); break; } } if(Direction == 1) { Temp->Balance += 1; switch(Temp->Balance) { case 0: AdjustFlag = 1; break; case 1: cout<<"这种情况下,不需要调整"<<endl; AdjustFlag = 0; break; case -1: PRINT_ERROR_MSG("这种情况是不存在的:删除右子树节点之后,balance=-1"); AdjustFlag = 0; break; case 2: cout<<"需要调整"<<endl; R_Rotate(Temp->Parent,AdjustFlag); } } if(Temp->Parent) { if(Temp==Temp->Parent->Left) { Direction = 0; } if(Temp == Temp->Parent->Right) { Direction = 1; } } Temp = Temp->Parent; } return *this; }
AVL树
的C++
实现
AVL树
的C++
实现
,包括初始化,插入,
删除
,遍历,搜索等
操作
,有注释
c++
实现
的
avl树
包括插入,
删除
等
操作
的
AVL树
,C++
实现
avl树
的
删除
、插入、平衡化旋转算法
实现
次程序是关于
avl树
的
删除
、插入、左单旋、右单旋、左右双旋、右左双旋的算法
实现
。程序有主菜单可按提示进行
操作
。
AVL树
图形化界面
操作
-MFC
使用mfc
实现
的图形化界面显示的
avl树
操作
程序,可以进行新建,
删除
,查找等
操作
。
用python
实现
AVL树
、B树、红黑树的插入、查找和
删除
操作
用python
实现
AVL树
、B树、红黑树的插入、查找和
删除
操作
。并且记录三颗查找树完成一定数量级的插入、查找和
删除
操作
所经历的时间。
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章