- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(数据结构课程设计二叉树的遍历报告
数据结构课程设计报告
姓 名
班 级
学 号
指导老师
课程设计目的
培养学生用学到的书本知识解决实际问题的能力;培养实际工作所需要的动手能力;培养学生以科学理论和工程上能力的技术,规范地开发大型、复杂、高质量的应用软件和系统软件具有关键性作用;通过课程设计的实践,学生可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
课程设计要求
1)学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。
数据结构
typedef BTREENODEPTR elemtype;
队列数据类型定义
typedef struct{
elemtype *elem;
int front,rear;
int size;
}SqQueue;
栈数据类型定义
typedef struct stack_tag{
elemtype *elem;
int top;
int size;
}SQSTACK;
二叉树数据类型定义
typedef struct btreenode{
char data;
struct btreenode *lchild,*rchild;
}BTREENODE,*BTREENODEPTR,*BTREE;
主要模块设计
BTREE CreateBtree1(char *str);//创建二叉树
void PreOrder(BTREE root);//先序递归遍历二叉树
void InOrder(BTREE root);//中序递归遍历二叉树
void PostOrder(BTREE root);//后序递归遍历二叉树
void PreOrder_1(BTREE root);//先序非递归遍历二叉树
void InOrder_1(BTREE root);//中序非递归遍历二叉树
void PostOrder_1(BTREE root);//后序非递归遍历二叉树
void LayerOrder(BTREE root);//层次遍历
其他模块包括栈的初始化及其基本操作和队列的初始化及基本操作。
详细设计
二叉树的建立
其中mark的值1、2、3、4分别指str[i]为字母、‘(’、‘,’、‘)’;
tag为左、右孩子的标志;
二叉树的递归遍历(以先序遍历为例)
二叉树的非递归遍历(以先序遍历为例)
二叉树的层次遍历
访问元素所指结点,若该元素所指结点的左右孩子结点非空,则该元素所指结点的左孩子指针和右孩子指针顺序入队。
运行结果
建立二叉树
先序遍历
中序遍历
后序遍历
层次遍历
退出程序
出错信息
设计总结
二叉树是数据结构的的基本内容。虽然程序规模不大,我依然付出了努力,仍免不了各种错误的出现。编程过程需要很大的毅力和耐心,而且要有良好的思维和扎实的专业基础知识,所以我需要不断的学习,发现自身不足之处并改正它,逐步提高自己。
c
a
d
f
g
主菜单
先序递归遍历
中序递归遍历
后序递归遍历
先序非递归遍历
中序非递归遍历
后序非递归遍历
层次遍历
结束
将以广义表形式输入的二叉树接收到数组str[80]中,成功建立二叉树
root=null
检查str[1~’\0’]
‘(’
‘)’
‘,’‘
mark=1;root-data=str[0],root-lchild=root-rchild=null;p=root;
str[0]是否为字母
Y
N
N
mark==2?
mark=2
str[i]入栈
tag=0
mark==3?
mark=3
tag=1
N
mark=4
pop为空
return null
N
Y
Y
‘)’‘
mark==1栈不空
新建结点p
p-data=str[i] p-lchild=p-rchild=null
tag==0?
循环结束后return root
栈顶-rchild=p
栈顶-lchild=p
Y
N
结点为空
N
访问根节点
先序遍历方式遍历左子树
先序遍历方式遍历右子树
结束
Y
开始
初始化队列,root入队
栈非空
出栈p;打印p-data
Y
p-lchild!=null
Y
p-lchild入
您可能关注的文档
最近下载
- 计量器具检定校准服务投标方案(完整技术标).docx
- 弹弹堂架设你想一个游戏那么一定要对这个有认识这样才能为.pdf
- 《常温好氧水解制复合碳源》编制说明.pdf
- 2023执业药师继续教育从8个临床问题学习氯吡格雷说明书参考答案.docx
- 护士进修汇报多学科护理的协作与合作.pptx
- 哈希HACH-NPW-160H总磷-总氮水质在线分析仪 使用手册-操作说明书.pdf
- 小学英语新人教版PEP三年级上册Unit 1 Making friends Part A第1课时教学课件(2024秋).pptx
- 《铁路桥隧养护与维修》教学课件合集.pptx
- 人教版六年级上册数学第三单元《分数除法》全单元教学课件(新插图).pptx
- 趋势交易法(鹿希武)-可直接打印.doc
文档评论(0)