ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:109.97KB ,
资源ID:17855820      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17855820.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构实验报告二叉排序树Word格式.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构实验报告二叉排序树Word格式.docx

1、节点48的平衡因子为0 节点76的平衡因子为0 节点60的平衡因子为0 节点84的平衡因子为0二 概要设计为了实现以上操作,应以二叉链表为存储结构。1. 基本操作:node *create()创建二叉排序树void NRPreorder(node *bt)先序非递归遍历输出void NRinorder(node *bt)中序非递归遍历输出void NRpostorder(node *bt)后序非递归遍历输出int height(node *bt)计算左右子树深度void shendu(node *bt)计算平衡因子2. 本程序包含七个模块(1) 主程序模块(2) 二叉排序树创建模块(3) 先序

2、遍历模块(4) 中序遍历模块(5) 后序遍历模块(6) 计算左右子树深度模块(7) 计算平衡因子模块3. 模块调用图三 详细设计1 元素类型,结点类型和指针类型:#define maxsize 100typedef struct node char data; struct node *lc; struct node *rc;node;node *smaxsize;node *bt;node *q,*p;2.每个模块的分析:(1)主程序模块:int main() node *bt; bt=create(); printf(该二叉树的先序递归遍历序列为: ); preorder(bt);n该二叉

3、树的中序递归遍历序列为: inorder(bt);该二叉树的后序递归遍历序列为: postorder(bt);该二叉树的先序非递归遍历序列为: NRPreorder(bt);该二叉树的中序非递归遍历序列为: NRinorder(bt);该二叉树的后序非递归遍历序列为: NRpostorder(bt);以先序遍历输出该二叉树,每个节点的平衡因子如下: shendu(bt); getchar(); return 0;(2)二叉排序树创建模块: node *q,*p; bt=NULL; /*根节点指针置空*/ int x; int i; int m; int j;请输入数据个数: scanf(%d,

4、&m);请输入数据: for(j=0;jdata=x; q-lc=q-rc=NULL; if(bt=NULL) /*如果根节点指针为空,将其指向新申请节点*/ bt=q; else p=bt; /*活动指针指向根节点*/ while(i=0) if(p-datax) /*如果新输入的数值比当前节点的数值小*/ if(p-lc!=NULL) /*如果当前节点的左孩子不为空,将活动指针移到它的左孩子*/ p=p-lc; else /*否则将新申请节点链到当前节点的左孩子,将i标记为1,表示已处理*/ p-lc=q; i=1; else /*否则沿右链域比较*/rc!=NULL) rc; else

5、/*直到终端,插入输入节点*/rc=q; return bt;(3)先序遍历模块: node *p; top=-1; top+; stop=bt; while(top!=-1) p=stop-; while(p)%d ,p-data); stop=p- p=p-(4)中序遍历模块 int top; if(bt=NULL) return; top=0; p=bt; while(!(p=NULL&top=0) while(p!=NULL) stop=p; top+; p=p- if(top q=NULL; flag=1; while(top!=-1&flag) p=stop;rc=q) print

6、f( top-; q=p; else p=p- flag=0; while (top!=-1);(6)计算左右子树深度模块 int hl,hr; if(bt=NULL) /*利用递归算法求左右子树的深度*/ return 0; else hl=height(bt-lc); hr=height(bt-rc); if(hlhr) return (hl+1); else return (hr+1);(7)计算平衡因子模块 int sl,sr; int ph; sl=height(p- /*当前节点左子树的深度*/ sr=height(p- /*当前节点右子树的深度*/ ph=sl-sr; /*当前节

7、点的平衡因子*/节点为%d的平衡因子为%dndata,ph);3.函数调用图:4. 完整的程序:(见源文件).四 使用说明、测试分析及结果1程序使用说明(1)本程序的运行环境为VC6.0。(2)进入演示程序后即显示提示信息:请输入数据个数:请输入数据:输入完数据以三种形式输出二叉排序树,并输出每个节点的平衡因子.2.测试数据:3.运行界面:五、实验总结本次试验过程比较顺利,由于上次的二叉树积累了经验,所以这次编得比较快,编程过程中没有出现问题,通过这次编程对于二叉树有了更进一步的熟悉和了解,可以熟练编写二叉排序树,熟悉了二叉排序树的结构,并且对于计算节点的深度以及节点的平衡因子有了一定的掌握。教师评语:实验成绩:#includemalloc.h/定义结构体/定义栈int top=-1;/创建二叉排序树/先序递归遍历void preorder(node *bt) if(bt! printf(,bt- preorder(bt-/中序递归遍历void inorder(node *bt) inorder(bt-/后序递归遍历void postorder(node *bt) postorder(bt-/先序非递归遍历/中序非递归遍历/后序非递归遍历/计算平衡因子

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1