搜档网
当前位置:搜档网 › 二叉树的遍历实验报告数据结构

二叉树的遍历实验报告数据结构

二叉树的遍历实验报告数据结构
二叉树的遍历实验报告数据结构

二叉树的遍历实验报告数

据结构

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<data<<",";

Preorder(p->Lchild);

Preorder(p->Rchild);

}

}

void Midorder(Btnode & p) {

if(p!=NULL)

{

Midorder(p->Lchild);

cout<data<<",";

Midorder(p->Rchild);

}

}

void Folorder(Btnode & p) {

if(p!=NULL)

{

Folorder(p->Lchild);

Folorder(p->Rchild);

cout<data<<",";

}

}

void main()

{

btnode *head=new btnode;

cout<<"请输入数据:";

Creat(head);

cout<<"前序遍历:";

Preorder(head);

cout<

cout<<"中序遍历:";

Midorder(head);

cout<

cout<<"后序遍历:";

Folorder(head);

getch();

}

八、实验体会

通过本次试验,让我更深刻的理解了二叉树的性质,在上机的操作过场中,发现了自己平时疏忽的细节,以后再学习过程中会注意。

相关主题