云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 动态查找树之平衡二叉树(Balanced Binary Tree,AVL树)

动态查找树之平衡二叉树(Balanced Binary Tree,AVL树)

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 14:19:28

}//if

}//DestroyDSTable

int InitDSTable(BSTree &DT)

{ // 操作结果: 构造一个空的动态查找表DT DT=NULL; return 1; }//InitDSTable

void Visit(BSTree DT) {

//printf(\printf(\}//Visit

void TraverseDSTable(BSTree &DT,void(*Visit)(BSTree))

{ // 初始条件: 动态查找表DT存在,Visit是对结点操作的应用函数

// 操作结果: 按关键字的顺序对DT的每个结点调用函数Visit()一次且至多一次 if(DT) {

TraverseDSTable(DT->lchild,Visit); // 先中序遍历左子树 Visit(DT); // 再访问根结点

TraverseDSTable(DT->rchild,Visit); // 最后中序遍历右子树 } }

int InsertAVLD(BSTree &T) {

ElemType e; Boolean taller;

printf(\scanf(\while(e.key!=-1) {

InsertAVL(T,e,taller);

printf(\ scanf(\ }

return 1;

}//InsertAVLD

void LeftBalanceD(BSTree T,int &shorter) {

BSTree lc=T->lchild,rd; switch(lc->bf) { case LH:

T->bf=lc->bf=EH; R_Rotate(T);break; case EH:

T->bf=LH; lc->bf=RH;

R_Rotate(T);break; case RH:

rd=lc->rchild; switch(rd->bf) {

case RH:

T->bf=EH;lc->bf=LH;shorter=0;break; case EH:

T->bf=EH;lc->bf=EH;shorter=1;break; case LH:

T->bf=RH;lc->bf=EH;shorter=1;break; }//switch rd->bf=EH;

L_Rotate(T->lchild); R_Rotate(T); }//switch }//LeftBalanceD

void RightBalanceD(BSTree T,int &shorter) {

BSTree rc=T->rchild,ld; switch(rc->bf) { case RH:

T->bf=rc->bf=EH; R_Rotate(T);break;

case EH:

T->bf=RH; rc->bf=RH;

L_Rotate(T);shorter=0;break; case LH:

ld=rc->lchild; switch(ld->bf) {

case RH:

T->bf=EH;rc->bf=RH;break; case EH:

T->bf=EH;rc->bf=EH;break; case LH:

T->bf=LH;rc->bf=EH;break; }//switch ld->bf=EH;

R_Rotate(T->rchild); L_Rotate(T); }//switch }//RightBalanceD

int SearchBSTD(BSTree &T) {

ElemType e;

printf(\scanf(\

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

}//if }//DestroyDSTable int InitDSTable(BSTree &DT) { // 操作结果: 构造一个空的动态查找表DT DT=NULL; return 1; }//InitDSTable void Visit(BSTree DT) { //printf(\printf(\}//Visit void TraverseDSTable(BSTree &DT,void(*Visit)(BSTree)) { // 初始条件: 动态查找表DT存在,Visit是对结点操作的应用函数 // 操作结果: 按关键字的顺序对DT的每个结点调用函数Visit()一次且至多一次 if(DT) {

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com