看完了第一篇博客,相信大家对于平衡二叉树的插入调整以及删除调整已经有了一定的了解,下面,我们开始介绍代码部分。
首先,再次提一下使用的结构定义
1 typedef char KeyType; //关键字 2 typedef struct MyRcdType //记录 3 { 4 KeyType key; 5 }RcdType,*RcdArr; 6 typedef enum MyBFStatus //为了方便平衡因子的赋值,这里进行枚举 7 { //RH,EH,LH分别表示右子树较高,左右子树等高,左子树较高 8 RH,EH,LH 9 }BFStatus; 10 typedef struct MyBBSTNode //树结点类型定义 11 { 12 RcdType data; //数据成员 13 BFStatus bf; //平衡因子 14 struct MyBBSTNode *lchild,*rchild; //左右分支 15 }BBSTNode,*BBSTree;