篇一 :二叉树实验报告

过程控制软件技术基础课程实验报告

实验项目:二叉树的建立和遍历

姓名:        戚风亮     

学号:     1008180230    

指导教师:      任登凤     

1. 实验目的

通过自主设计实验,掌握过程控制软件的基础理论知识,本实验具体表现为二叉树的建立和遍历,为以后计算机控制的软件设计提供基础。提高逻辑思维方式,培养应用可视化编程工具开发计算机软件的能力。

2. 实验内容

    本文主要介绍二叉树的建立和遍历。所使用的编程软件为matlab2010版本,主要使用其中的GUI功能,完成可视化界面操作。从更直接的角度感受二叉树的建立和遍历。

     二叉树的建立和遍历包含两个方面:建立和遍历。其中建立包括输入二叉树的每一个结点的元素,以及二叉树每一个结点的随机存储地址。与此同时,更重要的是创建两个指针域:左指针域L和右指针域R,在本次实验中,采用产生随机数的方式生成随机存储地址,采用两个数组代表两个指针域。二叉树的遍历采用递归函数的方式,本实验中采用三个函数Front,Middle,Behind分别实现前序、中序以及后序的功能。

(1)界面的设计:

软件的设计界面见图1。

                                图1 软件的总体界面

…… …… 余下全文

篇二 :二叉树实验报告

 

 

 

实  验  报 告

 

   

课程名称   算法与数据结构 

专    业      

学号    

姓名      

   实验日期     20131117 

 

 

算法与数据结构实验报告

二叉树的应用

一、实验目的

1.了解二叉树的结构特点及有关概念,掌握二叉树建立的基本算法 

2.了解二叉树遍历的概念,掌握遍历二叉的算法

3.进一步掌握树的结构及非线性特点,递归特点和动态性。 

二、实验内容

二叉树的实现和运算

三、实验要求 

1.用C++/C完成算法设计和程序设计并上机调试通过。

2.撰写实验报告,提供实验结果和数据。 

3.分析算法,并简要给出算法设计小结和心得。 

四、算法步骤

用户以三元组形式输入二叉树的结点元素及其位置关系,建立二叉树,并打印输出该二叉树。

用户输入选择结点,程序调用BiTNode* Find Node(char tag, BiTNode* node)函数,返回子树的根结点,然后调用BiTreeDepth(BiTree T)函数,求出子树的深度,并输出该值。

3.用户可以选择是否继续执行程序,若继续,则输入1,否则输入0,结束程序。

五、主程序代码:

int main(void)

{

 BiTree T;

…… …… 余下全文

篇三 :二叉树实验报告

算法与数据结构实验报告

——二叉树

课程名称:算法与数据结构

实验项目名称:满二叉树的建立与遍历

实验时间:20xx年x月x日

班级:电科1301 姓名:侯炜 学号:1402130126 实验目的:熟悉使用线性表结构,设计并理解多项式算法。 实验环境:Visual C++6.0,win7

实验步骤:

一.建立基本数据结构及程序架构

二.设计多项式各类操作的算法

三.调试程序,修改错误

四.总结得失

实验结果:成功使用中序输入建立二叉树并进行相应的遍历输出。 实验心得:

① 队列结构作用之一:用于储存“临时数据”以便后续输出 ② 满二叉树是仅仅输入一次遍历顺序就得出结果的先决条件

具体实验步骤:

一.建立基本数据结构及程序架构

1.1数据结构

确定所需要的对二叉树进行抽象的数据类型:树节点。建立数据结构如下: //----------------数据结构

typedef struct treenode

{

char data;

struct treenode* ltree;

struct treenode* rtree;

}Tnode;

//---------------

1.2主程序架构

建立了一个全局变量数组queue[]用作队列,函数指针fp用以调用操作函数,scree[100]数组用以储存输入的字符串。主要函数声明如下: //----------------------------

Tnode* finit(Tnode*tf,int flo);//中序建立

void transver(Tnode* tf,int flo,fp kf,int n);//层序遍历 tf为树节点 flo为层数 kf为回调函数 n为标识层数:0为全部遍历 其他n为输出第n层 void ordtra(Tnode* tf,fp kf,int flo);//先序遍历

…… …… 余下全文

篇四 :二叉树实验报告

数据结构实验报告

专业班级:计算机科学与技术

姓名:。。。。。。

学号:。。。。。。。

一、实验目的和要求

上机学习二叉树。

二、实验内容

实现二叉树的各项算法并掌握其用法如二叉树的构造,先中后序遍历,层次遍历等等

三、实验过程

3.1 设计算法

1.二叉树的构造:通过对二叉树的先序序列的扩展来构造二叉树

2.求二叉树的高度:二叉树的高度等于子树高度加一,递归求出二叉树高度。

3二叉树的层次遍历:初始化队列,使根节点进队。下面开始循环,终止条件为队列为空。是队头结点出队,并使它的左孩子和右孩子一次进队(如果存在)

4.求二叉树叶子结点:遍历二叉树,如果左孩子和右孩均不存在,则该结点为叶子结点。

3.2 数据结构的选择和概要设计

数据结构的选择:学习二叉树结构,利用队列实现其中的层次遍历。

概要设计:利用类将二叉树和其属性封装起来,定义结构体变量作为结点。

四、测试及结果分析

11   

 

输入空树

 

五、实验收获

通过课堂学习以及课后的上机实习,我学习到了树和二叉树的性质,以及相关算法。如二叉树的遍历,求二叉树的高度。并在这些算法实现的过程中对递归有了更加深的了解,并且认识到了递归的重要性

六、附录(源代码)

#include<iostream.h>

#include<queue>

using namespace std;

struct node{     

   char data;

   node*lchild;

   node*rchild;

   int num;

};

class Tree{

…… …… 余下全文

篇五 :实 验 报 告 二叉树遍历

 


数学与计算科学学院

实 验 报 告

实验项目名称    二叉树的遍历        

所属课程名称       数据结构         

实 验 类 型      验证型、设计型      

实 验 日 期        2015.11.18        

                          

                          

                          

…… …… 余下全文

篇六 :树和二叉树实验报告

                           

                                           

一、实验目的

1.      掌握二叉树的结构特征,以及各种存储结构的特点及适用范围。

2.      掌握用指针类型描述、访问和处理二叉树的运算。

二、实验要求

1.      认真阅读和掌握本实验的程序。

2.      上机运行本程序。

3.      保存和打印出程序的运行结果,并结合程序进行分析。

4.      按照二叉树的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。

三、实验内容

1.      输入字符序列,建立二叉链表。

…… …… 余下全文

篇七 :二叉树实验报告

姓名            
学号               
班级             
年级             
教师             
统计学院 

        《算法与数据结构》 实验报告

 

实验名称      二叉树      实验室                 实验日期                 

…… …… 余下全文

篇八 :实验六 二叉树实验报告(1)

实验四 二叉树的操作

班级:计算机1002班

姓名:**

学号:**

完成日期:20XX.6.14

题目:对于给定的一二叉树,实现各种约定的遍历。

一、实验目的:

(1)掌握二叉树的定义和存储表示,学会建立一棵特定二叉树的方法;

(2)掌握二叉树的遍历算法(先序、中序、后序遍历算法)的思想,并学会遍历算法的递归实现和非递归实现。

二、实验内容:构造二叉树,再实现二叉树的先序、中序、后序遍历,最后统计二叉树的深度。

三、实验步骤:

(一) 需求分析

1. 二叉树的建立首先要建立一个二叉链表的结构体,包含根节点和左右子树。因为树的每一个左右子树又是一颗二叉树,所以用递归的方法来建立其左右子树。二叉树的遍历是一种把二叉树的每一个节点访问并输出的过程,遍历时根结点与左右孩子的输出顺序构成了不同的遍历方法,这个过程需要按照不同的遍历的方法,先输出根结点还是先输出左右孩子,可以用选择语句来实现。

2.程序的执行命令为:

1)构造结点类型,然后创建二叉树。

2)根据提示,从键盘输入各个结点。

3)通过选择一种方式(先序、中序或者后序)遍历。

4)输出结果,结束。

(二)概要设计

1.二叉树的二叉链表结点存储类型定义

typedef struct Node

{

DataType data;

struct Node *LChild;

struct Node *RChild;

}BitNode,*BitTree;

2.建立如下图所示二叉树:void CreatBiTree(BitTree *bt)用扩展先序遍历序列创建二叉树,如果是当前树根置为空,否则申请一个新节点。

3.本程序包含四个模块

1) 主程序模块:

2)先序遍历模块

…… …… 余下全文