- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
安徽工程大学
数 据 结 构
课 程 设 计 说 明 书
?
?
?
学生姓名:
?刘超
学 号:
3120702109?
学 院:
计算机与信息学院
专 业:
信息与计算科学
题 目:
二叉树的创建和遍历
指导教师
潘海玉
?
?
?
?2014年8月25日
PAGE \* MERGEFORMAT
PAGE \* MERGEFORMAT 0
目录
需求分析1
概要设计1
详细设计3
调试分析9
课程总结10
附录 12
第
第 PAGE \* MERGEFORMAT 0 页
需求分析
问题描述:根据运行时输入的先序序列,创建一棵二叉树,分别对其 进行先序、中序、后序、层序遍历,并显示遍历结果。
void CreateBTree(BTree T) //按先序次序输入,构造二叉树
void PreOrder(BTree T) //递归先序遍历
void InOrder(BTree T) //递归中序遍历
void PostOrder(BTree T) //递归后序遍历
void LevelOrder(BTree T) //层序遍历
void NRPreOrder(BTree bt) //非递归先序遍历
void NRInOrder(BTree bt) //非递归中序遍历
void NRPostOrder(BTree bt) //非递归后序遍历
void main() //二叉树的建立与遍历实现
2.概要设计
此次课程设计遍历算法的框架图
层序遍历遍历算法递归遍历
层序遍历
遍历算法
递归遍历
非递归遍历
先序遍历
中序遍历
后序遍历
先序遍历
中序遍历
后序遍历
此次课程设计所用的三组二叉树
AA
A
A
CBCB
C
B
C
B
DFEEFD
D
F
E
E
F
D
GHA
G
H
A
BF
B
F
G
G
C
C
DEH
D
E
H
本设计所使用的存储结构:
typedef char ElemType;//定义二叉树结点值的类型为字符型
typedef struct bnode{//二叉链表结构定义
ElemType data;
struct bnode *lchild,*rchild;
}Bnode,* BTree;
typedef struct {
BTree ptr;
int tag;
}stacknode;
3.详细设计
void CreateBTree(BTree T){//按先序次序输入,构造二叉链表表示的二叉树T,#表示空树
char ch;
ch=getchar();
if(ch==#) T=NULL;//读入#时,将相应节点指针置空
else{
if(!(T=(Bnode *)malloc(sizeof(Bnode))))
printf(创建失败!);//生成结点空间
T-data=ch;
CreateBTree(T-lchild);//构造二叉树的左子树
CreateBTree(T-rchild);//构造二叉树的右子树
}
}
void PreOrder(BTree T){//递归先序遍历
if(T){
printf(%c ,T-data);
PreOrder(T-lchild);
PreOrder(T-rchild);
}
}
void InOrder(BTree T){//递归中序遍历
if(T){
InOrder(T-lchild);
printf(%c ,T-data);
InOrder(T-rchild);
}
}
void PostOrder(BTree T){//递归后序遍历
if(T){
PostOrder(T-lchild);
PostOrder(T-rchild);
printf(%c ,T-data);
}
}
void LevelOrder(BTree T){//层序遍历
BTree Q[MAX];
int front=0,rear=0;
BTree p;
if(T){ //根结点入队
Q[rear]=T;
rear=(rear+1)%MAX;
}
while(front!=rear){
p=Q[front]; //队头元素出队
front=(front+1)%MAX;
printf(%c ,p-data);
if(p-lch
您可能关注的文档
- 输血不良反应处理流程与应急预案.doc
- 输血不良反应识别标准、预防及应急措施.doc
- 输血管理实施细则考核办法.doc
- 输血实验室管理程序.doc
- 蔬菜大棚温湿度自动监控系统的设计.doc
- 蔬菜集约化育苗场建设项目的可行性研究报告.doc
- 蔬菜水果连锁超市策划书.doc
- 暑假五升六的阅读训练.doc
- 属地巡线工管理培训课件.ppt
- 数词讲解和练习.doc
- 2025秋 名师金典高考总复习 语文课件03 板块一 考题研析 任务突破一 第2讲 观点评价与推断题.pptx
- 2025秋 名师金典高考总复习 语文课件06 板块一 考题研析 任务突破二 第2讲 观点印证与迁移运用题.pptx
- 生物化学第四版教学课件完整版.ppt
- 新目标大学英语系列教材:西方文化英语教程 Unit 9 PPTx修订版.pptx
- 星期二下午english ab initio paper 2 sl英语.pdf
- 软件excel考试使用说明.pdf
- 参考分析project项目.pdf
- sigma-p8650共aldrich安全数据表.pdf
- 详细设计重定向.pdf
- 放松技术中心.pdf
文档评论(0)