数据结构实验报告
学期 _________________日期 _______________学院 ________________________成绩 _________
班级 _________________姓名 _______________学号 _______________指导教师 ______________
实验名称 : 实验 3 二叉树及其应用
实验目的 :加深对二叉树的结构特性的理解;掌握二叉树的二叉链表结构描述及其基本操作实现;
掌握二叉树的应用。
实验内容 :(2 选 1)内容 1: 二叉树的遍历。内容 2:哈夫曼编码 / 解码器。
实验要求: 1)在 C++系统中编程实现; 2)选择适宜的数据结构实现算法; 3)写出算法设计的基本
原理或画出流程图; 4)算法实现代码简洁明了;关键语句要有注释; 5)给出调试和测
试结果; 6)完成实验报告。
实验步骤
(1)算法设计
1)定义二叉链表存储结构,如果用非递归实现还需要定义栈的顺序存储结构
2)实现用先序的方法建立二叉链表
3)实现二叉树的先序、中序、后序遍历。可用递归或非递归实现,如果用非递归实现还需要
定义栈的顺序存储结构,及栈的基本操作初始化栈、判栈为空、出栈、入栈等运算。
4)定义队列的顺序存储结构并实现其基本操作如初始化队列、入队、出对、判断队列是否为
空等。利用队列实现二叉树的层次遍历 。
(2)算法实现
include <stdio.h>
#include <string.h>
#include <malloc.h>
#define NULL 0
typedef struct BiTNode // 定义二叉树的数据结构
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
BiTree Create(BiTree T) // 创建一颗二叉树
{