实验一二叉树的建立及其遍历.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
成绩: 课程名称: 实验项目: 姓 课程名称: 实验项目: 姓 名: 专 业: 班 级: 学 号: 数据结构实验 二叉树的建立及遍历 计算机科学与技术李翠超 计算机科学与技术 计算机16-6 1609040307 计算机科学与技术学院 实验教学中心 2017 年 11 月 24 0 实验项目名称:— 二叉树的建立及遍历 一、 实验目的 熟悉掌握课本二叉树相关理论知识 实践与理论相结合,以实践加深对理论理解并掌握二叉树的应用程序 学会二叉树的创建,遍历等其他基本操作的代码实现 二、 实验内容 二叉树的创建代码实现 2?二叉树先序、中序、后序遍历代码实现 3?13寸间有余的同学尝试二叉树的其他各项功能的代码实现,如:测量二叉树的深度,宽 度,结点数,叶子结点数及某个结点左右孩子 三、 实验操作步骤 阅读实验内容和要求 编写程序实现以下功能 建立一棵二叉树 先序、中序、后序遍历此二叉树 根据编译的结果,如果错误的及时找出并改正 四、 实验结果分析 1.在键盘上输入一段字符串,建立一棵二叉树 例如输入:abdg##h##e#Inncnvjnnn 此二叉树的结构如下图: 2?输出先序、中序、后序遍历序列(采用递归遍历) 左■ ” C:\Users\dell\Desktop\02二叉树链靖构实现.BiTreeLinlcexe - □ [前序遍历二叉树:ABDGHEICFJ [中序逼历二叉树:GDHBEIACJF {后序遍历二叉树:GHDIEBJFCA {Process returned 0 (0x0) execution time : 39.290 s Press any key to cont inuc. 五、源代码 #include string.h #include stdio.h #include stdlib.h #dcfinc OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 100 〃存储空间初始分配量 typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如OK等 typedef char TElemType; TElemType Nil=* : 〃字符型以空格符为空 Status visit(TElemType e) { printf(”%c “,e); return OK; } typedef struct B 汀Node // 结点结构 { TElemType data; // 结点数据 struct BiTNodc *lchild,*Tchild; // 左右孩 了指针 } B iTN ode, * B iT ree; //构造空二叉树T Status InitBiTree(BiTree *T) { *T=NULL; return OK; } //初始条件:二叉树T存在。操作结果:销毁二叉树T Status DestroyB汀ree(B汀ree *T) { if(*T) { if((*T)-lchild) // 有左孩子 DestroyBiTree((*T)-lchild); // 销毁左孩子子树 if((*T)-rchild) // 有右孩子 DestroyBiTree((*T)-rchild); // 销毁右孩子子树 哈尔滨理工大学计算机科学与技术学院实验教学中心 frcc(*T); //释放根结点 *T=NULL; //空指针赋() } } //按前序输入二叉树中结点的值(一个字符) 〃#表示空树,构造二叉链表表示二叉树T。 Status CreateBH7ee(B汀ree *T) { TElemType ch; scanf(%c,ch); ch=stiiindex++]; if(ch==,#) *T=NULL; else { *T=(BiT ree)malloc(sizeof( B iTNode)); if(!*T) return ERROR; (*T)-data=ch; // 生成根结点 CreateBiTree((*T)-lchild); // 构造左子树 CreateBiTree((*T)?rchild); // 构造右子树 } //初始条件:二叉树T存在 //操作结果:前序递归遍历T Status PreOrderTraverse(BiTree T) { if(T==NULL) return; prin(fT%c“,T?dala);〃显示结点数据,可以更改为其它对结点操作 PrcOrdcrTravcrsc(T-lchild); // 再先序遍历左 了树 PreOrderTraverse(T-rchiId); // 最后先序遍历右子树 return OK; } //

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档