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

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

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

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

插入删除是互为镜像的操作。我们可以采用前面对二叉排序树的删除操作来进行。然后,在删除掉结点后,再对平衡树进行平衡化处理。删除之所以删除操作需要的平衡化可能比插入时次数多,就是因为平衡化不会增加子树的高度,但是可能会减少子树的高度,在有有可能使树增高的插入操作中,一次平衡化能抵消掉增高;在有可能使树减低的删除操作中,平衡化可能会带来祖先节点的不平衡。

四、二叉排序数的C语言实现 #include \#include \#include \#define LH +1 //左高 #define EH 0 //等高 #define RH -1 //右高 #define TRUE 1 #define FALSE 1

#define EQ(a,b) ((a)==(b)) #define LT(a,b) ((a)< (b)) #define LQ(a,b) ((a)<=(b)) #define BT(a,b) ((a)> (b)) typedef int KeyType; typedef int info; typedef int Boolean; typedef struct ElemType {

KeyType key;

//info otherinfo;

};

typedef struct BSTNode {

ElemType data; int bf;

BSTNode *lchild,*rchild; // 左右孩子指针 }BSTNode,*BSTree;

void R_Rotate(BSTree &p) {//右旋 BSTree lc; lc=p->lchild;

p->lchild=lc->rchild; lc->rchild=p;

p=lc; //p指向新的根结点 }//R_Rotate

void L_Rotate(BSTree &p) {//左旋 BSTree rc; rc=p->rchild;

p->rchild=rc->lchild; rc->lchild=p;

p=rc; //p指向新的根结点 }//L_Rotate

void LeftBalance(BSTree &T) {//作平衡旋转处理 BSTree lc,rd; lc=T->lchild; switch(lc->bf) {

case LH:

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

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

case LH:T->bf=RH;lc->bf=EH;break; case EH:T->bf=lc->bf=EH; break; case RH:T->bf=EH;lc->bf=LH;break; }//switch rd->bf=EH;

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

void RightBalance(BSTree &T) {//作平衡旋转处理

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

共分享92篇相关文档

文档简介:

插入删除是互为镜像的操作。我们可以采用前面对二叉排序树的删除操作来进行。然后,在删除掉结点后,再对平衡树进行平衡化处理。删除之所以删除操作需要的平衡化可能比插入时次数多,就是因为平衡化不会增加子树的高度,但是可能会减少子树的高度,在有有可能使树增高的插入操作中,一次平衡化能抵消掉增高;在有可能使树减低的删除操作中,平衡化可能会带来祖先节点的不平衡。 四、二叉排序数的C语言实现 #include \#include \#include \#define LH +1 //左高 #define EH 0 //等高 #define RH -1 //右高 #define TRUE 1 #define FALSE 1 #define EQ(a,b) ((a)==(b)) #define LT(a,b) ((a)<

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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