数据结构二叉树.doc
文本预览下载声明
重庆交通大学计算机与信息学院
综合性设计性实验报告
学 生 姓 名: 王 林
班 级: 08级 计科一班
学 号: 0 8 0 6 0 1 0 7
实验项目名称: 二叉树
实验所属课程: 数据结构
实验室(中心): 软件与通信实验中心
指 导 教 师 : 鲁云平
完 成 时 间: 2010 年 5 月 14 日
一、实验目的
培养学生数据结构思想及分析方法,提高学生对知识的综合应用能力及程序设计能力。
二、实验内容及要求
二叉树实验 设计二叉树的一种存储结构,并实现以下功能:
1.能插入新结点;
2.能删除结点;
3.四种遍历:层次遍历;先序遍历,中序遍历,后序遍历
4.能搜索特定结点
5.找某结点的双亲结点和子女结点;
6.计算二叉树的高度和结点的层次;
7.分别统计叶结点和分支结点数等功能
三、实验设备及软件
计算机、Visual C++6.0
四、设计方案
㈠ 题目:二叉树
㈡ 设计的主要思路
根据数据结构中二叉树结构思想实现具有非线性结构的模板二叉树!
㈢ 主要功能
1.建立二叉树
2.遍历二叉树
(1) 前序遍历
(2) 中序遍历
(3) 后序遍历
(4) 层次遍历
3.操作树节点
(1) 插入节点
(2) 删除节点
(3) 搜索节点
4.统计二叉树
(1) 叶结点数
(2) 分支结点数
(3) 高度或层次
五、主要代码
includeiostream.h
#includestdio.h
#includewindows.h
#includeBinaryTree.h
void main()
{
BinaryTreechar *b=new BinaryTreechar;
int c;
do
{
cout\n\t\t****二叉树****endl;
cout\t\t* 1.建立二叉树 *endl;
cout\t\t* 2.遍历二叉树 *endl;
cout\t\t* 3.操作树节点 *endl;
cout\t\t* 4.统计二叉树 *endl;
cout\t\t* 0.退出 *endl;
cout\t\t****************endl;
cout请输入您的选择:;cinc;
while(!cin)
{
cin.clear();
cin.ignore(80,\n);
cout输入错误,请重新输入:;
cinc;
}
switch(c)
{
case 1:
if(b-IsEmpty())
{
int c1;
cout\n\t___建立二叉树____endl;
cout\t| |endl;
cout\t| 1.创建二叉树 |endl;
cout\t| 0.退出 |endl;
cout\t|_________________|endl;
cout请输入您的选择:;cinc1;
while(!cin)
{
cin.clear();
cin.ignore(80,\n);
cout输入错误,请重新输入:;
cinc1;
}
switch(c1)
{
case 0:
break;
case 1:
cin*b;
break;
default:
cout错误的选择,请重新输入!endl;
break;
}
}
else
{
cout二叉树已建立!endl;
break;
}
break;
case 2:
if(b-IsEmpty())
{
cout二叉树尚未建立,请先建立二叉树!!!endl;
break;
}
else
{
int c2;
do
{
cout\n\t___遍历二叉树____endl;
cout\t| |endl;
显示全部