二叉树的应用数据结构课程设计样本

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

信息科学与技术学院

数据结构课程设计报告

题目名称: 二叉树的应用专业班级: 计算机科学与技术学生姓名: 陈杰

学生学号:

指导教师: 高攀

完成日期: -04

目录

1、课程设计的目的、课程设计题目、题目要求错误!未定义书签。

1.1课程设计的目的 ............................................... 错误!未定义书签。

1.2课程设计的题目 ............................................... 错误!未定义书签。

1.3题目要求............................................................ 错误!未定义书签。2课程设计的实验报告内容:................................. 错误!未定义书签。3课程设计的原程序代码: ..................................... 错误!未定义书签。4运行结果 .............................................................. 错误!未定义书签。

5. 课程设计总结..................................................... 错误!未定义书签。6参考书目 .............................................................. 错误!未定义书签。

1课程设计的目的

1.1课程设计的目的:

经过以前的学习以及查看相关资料,按着题目要求编写程序,进一步加强对编程的训练,使得自己掌握一些将书本知识转化为实际应用当中.在整个程序中,主要应用的是链表,可是也运用了类.经过两种方法解决现有问题.

1.2课程设计的题目: 二叉树的应用

1.3题目要求:

1.建立二叉树的二叉链表存储算法

2.二叉树的先序遍历, 中序遍历和后序遍历输出

3.非递归的先序遍历, 中序遍历

4.二叉树的层次遍历

5.判断此二叉树是否是完全二叉树

6.二叉树的左右孩子的交换

2课程设计的实验报告内容:

7.经过递归对二叉树进行遍历。二叉树的非递归遍历主要采用利

用队进行遍历。此后的判断此二叉树是否是完全二叉树也才采

用队, 而二叉树的左右孩子的交换则采用的是一个简单的递归。3课程设计的原程序代码:

#include

using namespace std;

#define MAXSIZE 100

int sign=0;

void menu();

//

typedef struct BiTNode

{

char data;

BiTNode *left_child,*right_child;

}BiTNode,*BiTree;

int CreateBiTree(BiTree &T) //创立二叉树

{ char ch;

cout<<"请输入数据( #为结束) : ";

cin>>ch;

if(ch=='#') T=NULL;

else

{

if(!(T=new BiTNode)){

cout<<"Overflow!"; //no alloction

return 0;

}

T->data=ch;

CreateBiTree(T->left_child); //create leftchild

CreateBiTree(T->right_child); //create rightchild }

return 1;

}

//判断此树是否是完全二叉树

int LevelOrder1(BiTree &T)

{

BiTree stack[MAXSIZE];

BiTree p;

int front,rear;

front=-1,rear=0;

stack[rear]=T;

while(rear!=front)

{

front++;

p=stack[front];

if((p->left_child==NULL)&&(p->right_child)) sign=1;

if(p->left_child)

{

rear++;

stack[rear]=p->left_child;

}

if(p->right_child)

{

rear++;

stack[rear]=p->right_child;

}

}

return 1;

}

void Output(BiTree &T) //输出二叉树

{

if(!T) {

cout<<"空树!\n";

return ;

} //空树

相关文档
最新文档