首页
熊猫办公下载
文件下载
根据地址查询经纬度
登录 / 注册
首页
开发技术
其它
/ 二叉树排序树建立及平衡处理
二叉树排序树建立及平衡处理
上传者:
liu0701
|
上传时间:2024/6/18 4:28:29
|
文件大小:40KB
|
文件类型:rar
二叉树
二叉树排序树
平衡二叉树
二叉树排序树建立及平衡处理
1本程序在vc++6.0编译通过并能正常运行。
2主界面程序已经尽量做到操作简便了,用户只需要根据提示一步步进行操作就行了。
六思考和总结:这个课程设计的各个基本操作大部分都在我的综合性实验中实现了,所以做这个主要攻克插入和删除这两个算法!其中插入在书本上已经有了,其中的右平衡算法虽然没有给出,但通过给出的左平衡算法很容易就可以写出右平衡算法。
所以最终的点就在于删除算法的实现!做的过程中对插入算法进行了非常非常多次的尝试!花了非常多的时间,这其中很多时候是在对程序进行单步调试,运用了VC6。
0的众多良好工具,也学到了很多它的许多好的调试手段。
其中删除算法中最难想到的一点是:在用叶子结点代替要删除的非叶子结点后,应该递归的运用删除算法去删除叶子结点!这就是整个算法的核心,其中很强烈得体会到的递归的强大,递归的最高境界(我暂时能看到的境界)!其它的都没什么了。
选做的那两个算法很容易实现的:1合并两棵平衡二叉排序树:只需遍历其中的一棵,将它的每一个元素插入到另一棵即可。
2拆分两棵平衡二叉排序树:只需以根结点为中心,左子树独立为一棵,右子树独立为一棵,最后将根插入到左子树或右子树即可。
BSTreeEmpty(BSTreeT)初始条件:平衡二叉排序树存在。
操作结果:若T为空平衡二叉排序树,则返回TRUE,否则FALSE.BSTreeDepth(BSTreeT)初始条件:平衡二叉排序树存在。
操作结果:返回T的深度。
LeafNum(BSTreeT)求叶子结点数,非递归中序遍历NodeNum(BSTreeT)求结点数,非递归中序遍历DestoryBSTree(BSTree*T)后序遍历销毁平衡二叉排序树TR_Rotate(BSTree*p)对以*p为根的平衡二叉排序树作右旋处理,处理之后p指向新的树根结点即旋转处理之前的左子树的根结点L_Rotate(BSTree*p)对以*p为根的平衡二叉排序树作左旋处理,处理之后p指向新的树根结点,即旋转处理之前的右子树的根结点LeftBalance(BSTree*T)对以指针T所指结点为根的平衡二叉排序树作左平衡旋转处理,本算法结束时,指针T指向新的根结点RightBalance(BSTree*T)对以指针T所指结点为根的平衡二叉排序树作右平衡旋转处理,本算法结束时,指针T指向新的根结点Insert_AVL(BSTree*T,TElemTypee,int*taller)若在平衡的二叉排序树T中不存在和e有相同的关键字的结点,则插入一个数据元素为e的新结点,并返回OK,否则返回ERROR.若因插入而使二叉排序树失去平衡,则作平衡旋转处理布尔变量taller反映T长高与否InOrderTraverse(BSTreeT)递归中序遍历输出平衡二叉排序树SearchBST(BSTreeT,TElemTypee,BSTree*f,BSTree*p)在根指针T所指的平衡二叉排序树中递归的查找其元素值等于e的数据元素,若查找成功,则指针p指向该数据元素结点,并返回TRUE,否则指针p指向查找路径上访问的最后一个结点并返回FALSE,指针f指向T的双亲,其初始调用值为NULLDelete_AVL(BSTree*T,TElemTypee,int*shorter)在平衡二叉排序树中删除元素值为e的结点,成功返回OK,失败返回ERRORPrintBSTree_GList(BSTreeT)以广义表形式打印出来PrintBSTree_AoList(BSTreeT,intlength)以凹入表形式打印,length初始值为0Combine_Two_AVL(BSTree*T1,BSTreeT2)合并两棵平衡二叉排序树Split_AVL(BSTreeT,BSTree*T1,BSTree*T2)拆分两棵平衡二叉树}(2)存储结构的定义:typedefstructBSTNode{ TElemTypedata; intbf;//结点的平衡因子 structBSTNode*lchild,*rchild;//左.右孩子指针}BSTNode,*BSTree;
本软件ID:
1926015
文件下载
立即下载
资源详情
[{"title":"(2个子文件40KB)二叉树排序树建立及平衡处理","children":[{"title":"b.exe <span style='color:#111;'>184.04KB</span>","children":null,"spread":false},{"title":"b.c <span style='color:#111;'>19.88KB</span>","children":null,"spread":false}],"spread":true}]
评论信息
木易青鱼:
还行吧有用!
2013-11-23
萝莉塔con:
帮助了我这个菜鸟很多,非常感谢。全部用最普通的C语言实现,指针方面处理得很准确。不但有我想找的增、删、查、拆分合并,还有求深度等功能,学到了很多!
2013-09-22
fusheng535:
太强大了,学习了很多呀
2012-12-24
RayGis:
比较详细理解了~~
2012-10-29
kllihuang:
恩,这样子用图形说明数据结构,让我理解了哈哈,谢谢了
2011-10-11
其他资源
微信小程序餐厅扫码点餐项目源码
opencv3人脸识别代码和opencv_contrib已编译库
五子棋YiXin.exe
vue2.0图书管理系统,毕业设计,实习项目
5g系统技术入门教程(全).rar
ARMCortex-M3与Cortex-M4权威指南(第3版)(高清)
Concurrent+Programming+in+Java.pdf
WIN32连连看小游戏
python3.0爬虫小说
LDPCmessagepassing译码算法
蓝牙串口助手
韦来生数理统计第二版
非常实用的License管理程序
点云库PCL学习教程示例源码
SSJ完整干净Demo
STM32F407温湿度上传物联网平台
AEPR视频防抖插件ProDADMercalli4.0.487.1.zip
WPF调用Echart,通过JS与WPF数据交换
Window编译opencore-amr
python_data.xlsx
免责申明
【好快吧下载】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【好快吧下载】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【好快吧下载】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,8686821#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明
个人信息
点我去登录or注册
|
微信登录
一言
相关资源标签
热门下载
双系统双频伪距单点定位程序
Docker构建tomcat镜像jdk1.8+tomcat9.zip
中科院考博英语2009-2018年试题及答案解析(十五套436面).pdf
飘逸传世引擎源代码
ABAQUS金属非稳态和稳态切削过程的模拟分析_张东进.pdf
新升级版TP5商城小程序源码+公众号版+h5一整套源码V3.zip
CNS2_CN_VW_P0095D_0332.7z
高光谱和LiDAR多模态遥感图像分类数据集
几何画板课件350套.zip
ENVI去云补丁Haze_tool文件及其使用说明和安装方法
vue项目demo(asp.netmvc5+vue2.5)
R9390系列BIOS修改和风扇调速工具
HTML5+CSS3中文参考手册(3手册)chm版中文参考手册打包
吉利新金刚2016款车机导航系统
分形维数MATLAB程序
最新下载
查看Android应用签名工具
细胞图像分割与计数
proteus8253实验
超级完美实用的PSCAD软件安装包
PTA浙大版《C语言程序设计(第3版)》题目集(编程题参考答案).zip
optisystem的基础教程
javaweb崔希凡全套笔记
php与java互通rsa加密解密
MagicDrawuml
基于单片机的json编解码源码.zip
ABAPCoreDataServices.pdf
BIOS密码查看器
ElasticsearchinAction(Manning,2015)
Verilog多周期CPU
VTK8.2.0&vs2015.zip