二叉树的遍历实验报告数据结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二叉树的遍历实验报告数
据结构
The pony was revised in January 2021
实验报告
|
|
实验名称二叉树的遍历
课程名称算法与数据结构试验
|
|
专业班级:信息管理信息系统
学号:
实验日期:
姓名:慕鑫鑫
一、实验名称:二叉树的遍历
二、实验目的
综合应用所学的知识分析问题、解决问题,学会用建立二叉树并对其进行遍历,提高实际编程能力及程序调试能力。
三、实验要求
建立一个二叉树并对其进行遍历(先序,中序,后序)
四、实验内容
1、问题描述:建立一个二叉树,并分别用前序、中序、后序遍历该二叉树。
2、说明:
输入数据:
1,2,3,0,0,4,5,0,0,6,7,0,0,0,8,9,0,0,10,11,12,0,0,13,0,0,14,0,0其中
“0”表示空子树。
输出数据:
先序:1,2,3,4,5,6,7,8,9,10,11,12,13,14。
中序:3,2,5,4,7,6,1,9,8,12,11,13,10,14。
后序:3,5,7,6,4,2,9,12,13,11,14,10,8,1。
五、实验仪器与设备
计算机,JDK,记事本
六、实验原理
建立一个二叉树,利用递归的方法实现对该二叉树的前序,中序,后序的遍历,并输出遍历结果。
七、实验程序及结果
#include
#include<>
#include<>
using namespace std; typedef struct btnode
{
int data;
btnode *Lchild,*Rchild; }*Btnode;
void Creat(Btnode & t)
{
int ch;
cin>>ch;
if(ch==0)
t=NULL;
else
{
btnode *p=new btnode;
p->data=ch;
t=p;
Creat(t->Lchild);
Creat(t->Rchild);
}
}
void Preorder(Btnode & p)
{
if(p!=NULL)
{
cout<
Preorder(p->Lchild);
Preorder(p->Rchild);
}
}
void Midorder(Btnode & p) {
if(p!=NULL)
{
Midorder(p->Lchild);
cout<
Midorder(p->Rchild);
}
}
void Folorder(Btnode & p) {
if(p!=NULL)
{
Folorder(p->Lchild);
Folorder(p->Rchild);
cout<
}
}
void main()
{
btnode *head=new btnode;
cout<<"请输入数据:";
Creat(head);
cout<<"前序遍历:";
Preorder(head);
cout< cout<<"中序遍历:"; Midorder(head); cout< cout<<"后序遍历:"; Folorder(head); getch(); } 八、实验体会 通过本次试验,让我更深刻的理解了二叉树的性质,在上机的操作过场中,发现了自己平时疏忽的细节,以后再学习过程中会注意。