数据结构实验报告二叉树解析.doc
文本预览下载声明
实 验 报 告
实验名称 二叉树实验 评分: 实验课时 4课时 实验地点 综合楼E405 实验时间 2016年4月 24日 星期三 第5周 实验目的
及要求 实验目的:
通过序列构造二叉树的实验,进一步熟悉二叉树遍历及构造二叉树的过程,掌握基本知识点,发现理论学习中的不足;理清学习脉络;能独立思考,根据具体的序列组织数据,合理显示二叉树。
实验要求:
(1)用树形结构画出一棵二叉树(在结论中画出),采用凹入表示法和括号表示法正确输出该树。
(2)分析该二叉树的先序遍历、中序遍历和后序遍历的结果。
(3)根据二叉树的基本运算,设计先序遍历和中序遍历(或者中序遍历和后序遍历),确定二叉树的算法。
(4)在不改变原有二叉树结构的条件下,将二叉树左右孩子进行交换,并采用凹入表示法和括号表示法输出原有二叉树及交换子树后的二叉树。 实验设备
(软件、硬件及耗材) 软件环境:Win7 microsoft visual6++
硬件环境:intel core i5 cpu,4G内存,64位操作系统
实验内容
(算法、程序、步骤、方法及数据记录)
实验内容
(算法、程序、步骤、方法及数据记录)
实验内容
(算法、程序、步骤、方法及数据记录)
实验内容
(算法、程序、步骤、方法及数据记录)
一,源代码(1):头文件
#include
#include
#define maxsize 100
typedef char elemtype;
typedef struct node elemtype data;
struct node *lchild;
struct node *rchild;
btnode;
extern void createbtnode btnode *b,char *str ;
extern void dispbtnode btnode *b ;
extern void destroybtnode btnode *b ;
extern void preorder btnode *b ;
extern void inorder btnode *b ;
extern void postorder btnode *b ;
extern btnode *createbt1 char *pre,char *in,int n ;
extern btnode *createbt2 char *post,char *in,int n,int m ;
extern void dispbtnode1 btnode *b ;
extern btnode * revers btnode *b ;
extern btnode *rchildnode btnode *p ;
extern btnode *lchildnode btnode *p ;
二源代码(2):主函数:包括括号表示法,凹入表示法以及根据先序,中序确定二叉树。
#include
#includebtnodes.h
void main btnode *b;
createbtnode b,A B D,E H J,K L,M ,N ,C F,G ,I ;
printf 二叉树的基本运算入下:\n ;
printf (1)输出二叉树: ;
dispbtnode b ;
printf \n ;
printf 先序遍历序列: ;
preorder b ;
printf \n ;
printf 中序遍历序列: ;
inorder b ;
printf \n ;
printf 后序遍历序列: ;
postorder b ;
printf \n ;
elemtype pre[] ABDEHJKLMNCFGI;
elemtype in[] DBJHLKMNEAFCGI;
b createbt1 pre,in,14 ;
printf 先序序列:%s\n,pre ;
printf 中序序列:%s\n,in ;
printf 先序中序构造一棵二叉树b:\n ;
printf 括号表示法: ;
dispbtnode b ;
printf \n ;
printf 凹入表示法:\n ;
dispbtnode1 b ;
printf \n\n ;
printf 交换左右孩子后的二叉树为:\n ;
createbtnode b,A B D,E H J,K L,M ,N ,C F,G ,I ;
revers b ;
dispbtnode1 b ;
printf 7 释放二叉树b\n ;
destroybtnode b ; 源代码(3):功能块
根据根据先序,中序确定二叉树。以及凹入法表示
#include btn
显示全部