已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮海工学院计算机科学系实验报告书课 程名: 数据结构 题 目: 树型数据结构试验 班 级: 学 号: 姓 名: 评语:成绩: 指导教师: 批阅时间: 年 月 日 数据结构 实验报告 - 8 -树结构算法实现与应用报告要求1目的与要求:1)熟练掌握二叉树的二叉链表表示及前序创建算法与实现;2)熟练掌握二叉树的前序、中序和后序递归遍历算法与实现;3)掌握中序遍历线索二叉树的基本算法与实现 4)掌握中序遍历线索化二叉树的算法与实现;5)按照实验题目要求独立完成实验内容(提交程序清单及相关实验数据与运行结果);6)认真书写实验报告,并按时提交(本次实验第9周周三以前提交,不得延误)。2 实验内容或题目 实验内容:1)按照先序序列建立下图所示二叉树的二插链表树,结点元素类型取字符型,树的字符序列从键盘逐个动态输入。2)在第1)步建立好的二叉链表树上实施前序、中序和后序递归遍历,并输出相应遍历序列。3) 在第1) 步建立好的二叉链表树上实施前序遍历的叶子结点输出及其个数统计。4)在第1) 步建立好的二叉链表树上实施二叉树性质三的验证;5)在第1)步建立好的二叉链表树上实施中序非递归遍历,并输出相应遍历序列(选做)6)中序线索化第1)步所建立的二叉链表树(选做)。7)中序遍历第6)步所建立的线索二叉树,并输出遍历结果(选做)(注释:实验要求完成的任务(各个实验内容)应以菜单机制显示和运行来逐项完成,即整个实验题目写一个主程序完成所有实验内容,并以菜单机制实施交互运行,而不要一个实验内容写一个主程序)ABCDEFG3 实验步骤与源程序 #include #include #include typedef struct Node char data; struct Node *LChild; struct Node *RChild; BiTNode, *BiTree;void CreateBiTree(BiTree *bt) char ch; ch = getchar(); if(ch=.) *bt=NULL; else *bt=(BiTree)malloc(sizeof(BiTNode);(*bt)-data=ch; CreateBiTree(&(*bt)-LChild); CreateBiTree(&(*bt)-RChild); void Visit(char ch)printf(%c ,ch);void PreOrder(BiTree root)if (root!=NULL)Visit(root -data); PreOrder(root -LChild); PreOrder(root -RChild);void InOrder(BiTree root) if (root!=NULL)InOrder(root -LChild);Visit(root -data);InOrder(root -RChild);void PostOrder(BiTree root)if(root!=NULL)PostOrder(root -LChild);PostOrder(root -RChild);Visit(root -data); void Pre(BiTree root)if (root!=NULL)if(root-LChild=NULL&root-RChild=NULL)printf(%c ,root-data);Pre(root -LChild);Pre(root -RChild);int LeafCount(BiTree &T) int num1,num2,num3; if(!T) return 0; if(T-LChild=NULL & T-RChild=NULL) return 1; num1=LeafCount(T-LChild); num2=LeafCount(T-RChild); num3=num1+num2; return (num3);void main() int i;BiTree T;printf(创建先序遍历序列二插树);CreateBiTree(&T);star:printf(n请选择您要进行的操作:n);printf(1,显示先序遍历序列n);printf(2,显示中序遍历序列n);printf(3,显示后序遍历序列为n);printf(4,显示前序叶子节点及其个数n);scanf(%d,&i);switch (i)case 1:printf(先序遍历序列为:); PreOrder(T);printf(n);goto star;break;case 2:printf(中序遍历序列为:); InOrder(T);printf(n);goto star;break;case 3:printf(后序遍历序列为:); PostOrder(T);printf(n);goto star;break;case 4:printf(前序遍历的叶子结点是:);Pre(T);printf(n);printf(前序遍历的叶子结点个数是:); printf(%d,LeafCount(T);printf(n);printf(n);goto star;break; 4 测试数据与实验结果(可以抓图粘贴) 5 结果分析与实验体会主要遇到的问题就是用switch语句时不知道怎么反回主菜单,后来查找看书了解到可以用goto语句跳出返回到主菜单。创建二叉树参考程序#include #include #include typedef char DataType;typedef struct NodeDataType data;struct Node *LChild;struct Node *RChild;BiTNode, *BiTree;void CreateBiTree(BiTree *bt)char ch;ch = getchar(); if(ch=.) *bt=NULL; else *bt=(BiTree)malloc(sizeof(BiTNode); /生成一个新结点 (*bt)-data=ch; CreateBiTree(&(*bt)-LChild); /生成左子树 CreateBiTree(&(*bt)-RChild); /生成右子树void Visit(char ch)printf(%c ,ch);void PreOrder(BiTree root) /*先序遍历二叉树, root为指向二叉树(或某一子树)根结点的指针*/if (root!=NULL)Visit(root -data); /*访问根结点*/PreOrder(root -LChild
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年莱芜辅警协警招聘考试备考题库及参考答案详解一套
- 2023年鹰潭辅警协警招聘考试备考题库含答案详解(培优a卷)
- 2024年宝鸡辅警招聘考试题库及答案详解(必刷)
- 2024年南京辅警招聘考试真题及答案详解(夺冠系列)
- 2023年衢州辅警招聘考试题库及参考答案详解一套
- 2024年吐鲁番辅警招聘考试真题附答案详解(考试直接用)
- 2023年铜川辅警招聘考试真题及1套完整答案详解
- 2023年西双版纳州辅警协警招聘考试真题及答案详解一套
- 2023年绵阳辅警招聘考试真题附答案详解(预热题)
- 2023年阿勒泰辅警招聘考试真题及答案详解(夺冠系列)
- 学校体育发展五年规划(2025.9-2030.9)
- 2025年陇南市人民检察院司法警察辅助人员招聘考试笔试试题
- 2025北京市顺义区卫生健康委员会所属事业单位招聘额度人员14人笔试考试参考题库及答案解析
- 2025年全国共青团“新团员入团”应知应会知识考试试卷及完整答案详解【必刷】
- 思想道德与法治(2023年版)电子版教材第一章 领悟人生真谛 把握人生方向
- 卖身合同范例
- 2022年四川凉山州雅砻江国有林保护局招聘护林员10人笔试备考题库及答案解析
- 心衰千万人群市场重磅产品呼之欲出
- GB/T 156-2017标准电压
- 口语必备-英语最常用单词3000个(adverb)
- 中医适宜技术火针疗法课件
评论
0/150
提交评论