全文预览

二叉排序树与平衡二叉树

上传者:幸福人生 |  格式:docx  |  页数:26 |  大小:253KB

文档介绍
,而且在BBST的右子树中不存在和e相同关键字的结点,则将e插入在BBST的右子树上Р2.9在平衡二叉排序树上删除一个元素Р 删除结点过程与插入结点的操作类似,基本过程是:平衡二叉树--à找到要删除的结点--à删除一个结点--à变成二叉树--à旋转--à变回平衡二叉树。具体过程将详细设计中的代码。Р2.10求平衡二叉树的平均查找长度Р计算平衡二叉排序树的平均查找长度时,采用类似中序遍历的递归方式,用s记录总查找长度,j记录每个结点的查找长度,s置初值为0,采用累加的方式最终得到总查找长度s。平均查找长度就等于s/i(i为树中结点的总个数)。Р使用的头文件Р#include <stdlib.h>Р#include <stdio.h> Р常量定义Р# define LH +1 //左高Р# define EH 0 //等高Р# define RH -1 //右高Р# define TRUE 1Р# define FALSE 0Р# define EQ(a,b) ((a)==(b))Р# define LT(a,b) ((a)<(b))Р# define LQ(a,b) ((a)<=(b))Р全局变量定义Рint taller=0; /*taller反映T长高与否*/Рint shorter=0; /*shorter反映T变矮与否*/Р数据结构定义Р/*根据平衡二叉树特点可以定义平衡二叉树的存储结构*/Р/*二叉排序树的类型定义*/Рtypedef struct BSTNodeР{ Р?int data; /*结点值*/Р?int bf; /*结点的平衡因子*/Р?struct BSTNode * leftchild, * rightchild;?/*分别指向左右孩子的指针*/Р}BSTNode, *BSTree;?/*同时声明一个BSTNode和一个指针类型的*BSTree*/

收藏

分享

举报
下载此文档