二叉树基本操作
一、实验目的
1. 熟悉二叉树结点的结构和对二叉树的基本操作。
2. 掌握对二叉树每一种操作的具体实现。
3. 学会利用递归方法编写对二叉树这种递归数据结构进行处理的算法。
4. 在二叉树基本操作的基础上掌握对二叉树的一些其它操作的具体实现方法 。
5. 掌握构造哈夫曼树以及哈夫曼编码的方法。
二、实验内容(必做 1)
程序 1
该程序的功能是实现二叉树结点的类型定义和对二叉树的基本操作。
该程序包括二叉树结构类型以及每一种操作的具体的函数定义和主函数。
/* 定义 DataType 为 char 类型 */
typedef char DataType;
/* 二叉树的结点类型 */
typedef struct BitNode
{DataType data;
struct BitNode *lchild,*rchild;
}BitNode,*BitTree;
/* 初始化二叉树,即把树根指针置空 */
void BinTreeInit(BitTree *BT)
/* 按先序次序建立一个二叉树*/
void BinTreeCreat(BitTree *BT)
/* 检查二叉树是否为空 */
int BinTreeEmpty(BitTree *BT)
/* 按任一种遍历次序(包括按先序、中序、后序、按层次)输出二叉树中的所
有结点 */
void BinTraverse(BitTree *BT)
/* 求二叉树的深度 */
int BinTreeDepth(BitTree BT)
/* 求二叉树中所有结点数 */
int BinTreeCount(BitTree BT)
/* 清除二叉树,使之变为空树 */
void BinTreeClear(BitTree *BT)
程序 2 二叉树采用二叉链表存储,设计按层次遍历二叉树的算法。
- 1
- 2
前往页