




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上数据结构实验报告班级:学号:姓名:计算机科学与技术学院 题目:二叉树的遍历一、设计内容 从键盘接受输入先序序列,以二叉链表作为存储结构,建立二叉树(以先序来建立)并对其进行遍历。然后将遍历结果输出。先序、中序、后序遍历要求采用递归和非递归实现。ABCDGEF对于如右图所示的二叉树,其扩展的先序遍历序列为:A B D . G . . C E . . F . .(其中小圆点表示空子树)当输入扩展的先序遍历序列:A B D . G . . C E . . F . . 输出应该为:层次遍历:A B C D E F G 先序遍历:A B D G C E F中序遍历:D G B
2、A E C F 后续遍历:G D B E F C A 二、设计目的1. 达到熟练掌握C+语言的基本知识和技能;2. 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。三、系统分析与设计(确定程序功能模块)1.定义二叉链表存储结构2.以先序遍历建立二叉链表,CreateBiTree(BiTree *bt)3.实现先序遍历二叉树的递归算法, PreOrder(BiTree bt)4实现中序遍历二叉树的递归算法, InOrder(BiTree bt)5.实现后序遍历二叉树的递归算法, PostOrder(BiTree bt)6.实现先序遍历二叉树的非递归算法,NRPreOrder (Bi
3、Tree bt)7.实现中序遍历二叉树的非递归算法,NRInOrder (BiTree bt)8.实现后序遍历二叉树的非递归算法,NRPostOrder (BiTree bt)9.实现层次遍历二叉树的递归算法,LevelOrder (BiTree bt)10.调用各个函数输出遍历结果四、源程序代码#include "iostream.h"#include "stdio.h"#include "malloc.h"typedef struct Node/*声明二叉树二叉链表节点的结构!*/ char data; struct Node *
4、lchild; struct Node *rchild;BiTNode,*BiTree;typedef struct /*定义结构体(将栈中元素的数据类型定义为指针和标志flag合并的结构体类型)*/BiTree link;int flag;stacktype;/*函数声明*/void Visite(char a);void CreateBiTree(BiTree *bt);void PreOrder(BiTree bt);void InOrder(BiTree bt);void PostOrder(BiTree bt);void NRPreOrder (BiTree bt);void NRI
5、nOrder (BiTree bt);void NRPostOrder (BiTree bt);void LevelOrder (BiTree bt);/*定义函数(访问节点的数据域)*/void Visite(char a) cout<<a<<" "/*层次遍历二叉树*/void LevelOrder (BiTree bt)BiTree queue50;int front,rear;if (bt=NULL)return;front=-1;rear=0;queuerear=bt;while (front !=rear)front +;Visite (
6、queuefront->data);if (queuefront->lchild!=NULL)rear+;queuerear=queuefront->lchild;if (queuefront->rchild!=NULL)rear+;queuerear=queuefront->rchild;/*先序遍历建立二叉树*/void CreateBiTree(BiTree *bt)char ch;ch=getchar();if (ch='.') *bt=NULL;else *bt=(BiTree) malloc(sizeof(BiTNode); (*bt)
7、->data=ch; CreateBiTree(&(*bt)->lchild); CreateBiTree(&(*bt)->rchild);/*递归先序遍历二叉树bt*/void PreOrder(BiTree bt) if(bt=NULL) return;cout<<bt->data<<" "PreOrder (bt->lchild);PreOrder (bt->rchild);/*递归中序遍历二叉树bt*/void InOrder(BiTree bt)if(bt=NULL) return;InO
8、rder (bt->lchild);cout<<bt->data<<" "InOrder (bt->rchild);/*递归后序遍历二叉树bt*/void PostOrder(BiTree bt)if(bt=NULL) return;PostOrder (bt->lchild);PostOrder (bt->rchild);cout<<bt->data<<" "/*非递归先序遍历二叉树bt*/ void NRPreOrder (BiTree bt)BiTree stack
9、20,p;int top;if (bt=NULL)return;top=0;p=bt;while(!(p=NULL&&top=0)while (p!=NULL)Visite (p->data);if (top <20-1)stacktop=p;top+;elsecout<<"溢出!"return;p=p->lchild;if (top<=0)return;elsetop-;p=stacktop;p=p->rchild; /*非递归中序遍历二叉树bt*/void NRInOrder (BiTree bt)BiTree
10、stack20,p;int top;if (bt=NULL)return;top=0;p=bt;while(!(p=NULL&&top=0)while (p!=NULL)if (top <20-1)stacktop=p;top+;elsecout<<"溢出!"return;p=p->lchild;if (top<=0)return;elsetop-;p=stacktop;Visite (p->data);p=p->rchild;/*非递归后序遍历二叉树bt*/void NRPostOrder (BiTree bt)s
11、tacktype stack50;BiTree p;int top,sign;if (bt=NULL)return;top=-1;p=bt;while (!(p=NULL&&top=-1)if (p!=NULL)top+;stacktop.link=p;stacktop.flag=1;p=p->lchild;elsep=stacktop.link;sign=stacktop.flag;top-;if (sign=1)top+;stacktop.link=p;stacktop.flag=2;p=p->rchild;else Visite (p->data);p=
12、NULL;/*主函数*/void main()cout<<"请输入序列:"<<endl;BiTree bt;CreateBiTree(&bt);cout<<"n层次遍历:"LevelOrder (bt);cout<<"nn先序、中序、后序遍历的递归实现:"cout<<"n先序遍历:"PreOrder(bt);cout<<"n中序遍历:"InOrder(bt);cout<<"n后序遍历:"PostOrder(bt);cout<<"nn先序、中序、后序遍历的非递归实现:"cout<<"n先序遍历:"NRPreOrder (bt);cout<<"n中序遍历:"NRInOrder (bt);cout<<"n后序遍历:"NRPostOrder (bt);cout<<"nn&qu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025个性化一对一投资管理合同范本
- 2025年籽仁类产品项目合作计划书
- 2025年计量标准器具:化学计量标准器具合作协议书
- 2025年放射性污染防治合作协议书
- 2025年刮墨刀项目合作计划书
- 2025年家用电力器具专用配件合作协议书
- 2025年硬泡聚醚项目建议书
- 2025年变频器柜体系统项目建议书
- 2025年洁磁剂项目合作计划书
- 2025年陶瓷分离膜及功能隔膜项目合作计划书
- 中国慢性冠脉综合征患者诊断及管理指南2024版解读
- 课件:《科学社会主义概论(第二版)》第五章
- DB36∕T 1720-2022 牧草裹包青贮技术规程
- 基于BIM技术的建筑工程安全管理应用与探讨
- 基于深度学习的电力系统故障恢复与优化方法研究
- 大数据与人工智能营销知到智慧树章节测试课后答案2024年秋南昌大学
- 第20课 清朝君主专制的强化(导学案)(原卷版)
- VR游戏中心:虚拟现实的娱乐新趋势
- 四川省德阳市(2024年-2025年小学六年级语文)统编版小升初模拟((上下)学期)试卷及答案
- 2024年江苏省徐州市中考生物真题卷及答案解析
- T-CSUS 69-2024 智慧水务技术标准
评论
0/150
提交评论