当前位置:文档之家› 实验四 二叉树的遍历和应用04

实验四 二叉树的遍历和应用04

preorder(p->lchild);
preorder(p->rchild);
}
}
//中序遍历
void inorder (bitree *root)
{
bitree *p;
p=root;
if(p!=NULL)
{
inorder(p->lchild);
cout<<p->data<<" ";
inorder(p->rchild);
}
}
//后序遍历
void postorder(bitree *root)
{
bitree *p;
p=root;
if(p!=NULL)
{
postorder(p->lchild);
postorder(p->rchild);
cout<<p->data<<" ";
}
}
void main()
{
//以下为验证程序
bitree *root;
cout<<"建立一棵根为root"<<endl;
root=CreatBiTree();
cout<<"\n";
preorder(root);
cout<<"\n";
inorder(root);
cout<<"\n";
postorder(root);
cout<<endl;
}报告评分:
typedef struct bitree
{
char data ;
bitree *lchild;
bitree *rchild;
}bitree;
bitree *CreatBiTree()
{
bitree *T;
char ch ;//结点的data域值
cin>>ch;
if(ch==',')T=NULL;
else {
二、实验项目名称:二叉树的遍历和应用
三、实验学时:4学时
四、实验原理:
二叉树的遍历和应用
五、实验目的:
1、掌握二叉树的数据类型描述及特点。
2、掌握二叉树的存储结构(二叉链表)的建立算法。
3、掌握二叉链表上二叉树的基本运算的实现。
六、实验内容:
阅读后面的程序,并将其输入到计算机中,通过调试为下面的二叉树建立二叉链表,并用递归实现二叉树的先序、中序、后序三种遍历。
十、实验结论:
该程序可以完成线性表的常规功能,且增加了异常处理,在异常情况下,例如:
表空,删除结点号不合法或出界,删除数值未找到等,这些情况下都能作出处理。可以通过边界测试。
十一对本实验过程及方法、手段的改进建议:
对书中程序的几点错误做了改正,见源程序。
附:源程序
#include <iostream.h>
江南大学通信与控制工程学院
标准实验报告
(实验)课程名称:计算机软件技术基础
实验名称:二叉树的遍历和应用
班级:自动化
姓名:李玉书
学号:03
指导教师:卢先领
江南大学通信与控制学院
江南大学
实验报告
学生姓名:张晓蔚学号:0704090304
实验地点:信控机房实验时间:90分钟
一、实验室名称:信控学院计算中心
七、实验器材(设备、元器件):
计算机
八、实验步骤:
1、输入示例程序
2、构建按序插入函数实现算法
3、用C语言实现该算法
4、与源程序合并,编译,调试
5、测试,查错,修改
6、生成可执行文件,通过综合测试,完成实验
九、实验数据及结果分析:
测试用例
初始数据:ABDH,,I,,EJ,,K,,CFL,,,G,,
测试结果
T=new bitree;
T->data=ch;
T->lchild=CreatBiTree();
T->rchild=CreatBiTree();
}
return r(bitree *root)
{
bitree *p;
p=root;
if(p!=NULL)
{
cout<<p->data<<" ";
指导教师签字:
相关主题