按层次遍历二叉树

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学 号:
课程设计


按层次遍历二叉树


计算机科学与技术


计算机科学与技术




指导教师
年 月
课程设计任务书
学生姓名:
指导教师:
题目
初始条件:
编写按层次顺序(同一层自左至右)遍历二叉树的算法。
(1)二叉树采用二叉链表作为存储结构。
(2)按严蔚敏《数据结构习题集(C语言版)》p44面题6.69所指定的格式输出建立的二叉树。
typedef struct BiTNode{//二叉树的二叉链表存储表示
ElemType date;
struct BiTNode *lchild,*rchild;//左右孩子指针
} BiTNode,*BiTree;
3.2
3.2.1
void CreateBinTree(BinTree &T){II按先序次序输入,构造二叉链表表示的二叉树T
if (p->rchild!=NULL) Queue[rear++]=p->rchild; }
323
void Print_BinTree(BinTree T,int i )// i表示结点所在层次,初次调用时i=0
{
if(T->rchild) Print_BinTree(T->rchild,i+1);//函数递归
if (T)//若树非空
{
Queue[rear++]=T;II
根结点入队列
while (fron t!=rear){
II队列非空
p=Queue[fr on t++];
II队首元素出队列,并访问这个结点
prin tf("%c",p->data);
if (p->lchild!=NULL) Queue[rear++]=p->lchild; //左子树非空,入队列
3.调试报告
调试过程中遇到的问题是如何解决的;对设计和编码的讨论和分析。
4.经验和体会(包括对算法改进的设想)
5.附源程序清单和运行结果。源程序要加注释。如果题目规定了测试数据,则运行结果要包含这些 测试数据和运行输出。
说明:
1.设计报告、程序不得相互抄袭和拷贝;若有雷同,则所有雷同者成绩均为0分。
2.凡拷贝往届任务书或课程设计充数者,成绩一律无效,以0分记。
时间安排:
1、第18周完成。
2、7月2日8:30时到实验中心检查程序、交课程设计报告、源程序(U盘)。
指导教师签名:
系主任(或责任教师)签名:
数据结构课程设计
一按层次遍历二叉树
1
1.1
编写按层次顺序(同一层自左至右)遍历二叉树的算法。
1.2
(3)输出层次遍历结果。
(4)自行设计测试用例。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
课程设计报告按学校规定格式用A4纸打印(书写),并应包含如下内容:
1•问题描述
简述题目要解决的问题是什么。
2.设计
存储结构设计、主要算法设计(用类C/C++语言或用框图描述)、测试用例设计;
编写按层次顺序(同一层自左至右)遍历二叉树的算法。
(1)二叉树采用二叉链表作为存储结构。
(2)按题集p44面题6.69所指定的格式输出建立的二叉树。
(3)输出层次遍历结果。
(4)测试用例自己设计。
2
Win dows 7.0,Visual C++6.0
3
3.1
typedef char ElemType;//二叉树结点值的类型为字符型
CreateBi nTree(T->rchild);
}
}
3.2.2
void LevleOrder(BinTree T){
II从第一层开始,从左到右
Bin Tree Queue[max],p; II
用一维数组表示队列,front和rear分别表示队首和队尾指针
int fron t,rear;
fron t=rear=0;
char ch;
ch=getchar();II输入函数。
if(ch=='') T=NULL;II输入空格时为空
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) printf("%c""
T->data=ch;
CreateBi nTree(T->lchຫໍສະໝຸດ Baiduld);
for( j=1;j<=i;j++) printf(""); //打印i个空格以表示出层次
printf("%c\n",T->data); //打印T元素,换行
if(T->lchild) Prin t_BiTree(T->lchild,i+1);
相关文档
最新文档