
一、实验目的
实现 AVL 树的基本操作。
二、实验要求及实验环境
实验要求:实现 AVL 树的基本操作(建立,删除,插入,查找,遍历等)。
实验环境:windows 平台、code::blocks 集成开发环境。
三、设计思想(本程序中的用到的所有数据类型的定义,主
程序的流程图及各程序模块之间的调用关系)
1.逻辑设计
主程序的流程:定义了 AVL 树、结点元素。程序开始时,调用 MakeEmpty()函数
将 AVL 树初始化,然后调用 MainMenue()函数进入菜单选择项,根据输入的选择
项判断调用相应的程序,实现相应的逻辑功能。
2.物理设计
所有抽象数据类型的定义如下:
二叉树结点定义:
struct AvlNode
{
ElementType Element;
AvlTree Left;
AvlTree Right;
int Height;
};
各模块的具体实现程序是:avltree.cpp
各模块的的功能及参数说明:avltree.h 如下:
struct AvlNode;
typedef struct AvlNode *Position; //定义位置的型
typedef struct AvlNode *AvlTree; //定义 AVLTree 的型
typedef int ElementType; //定义结点元素的型
/*
函数:初始化 AVL 树
入口参数: AvlTree T
输入: 无
输出: 无
返回: 空 AvlTree */