二叉树的应用数据结构课程设计样本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 ;
} //空树