数据结构实验报告 题目:树的抽像数据类型实现 一、 实验目的 对某个具体的抽象数据类型,运用课程所学的知识和方法,设计合理的数据结构,并在此基础上实现该抽象数据类型的全部基本操作。通过本设计性实验,检验所学知识和能力,发现学习中存在的问题。 进而达到熟练地运用本课程中的基础知识及技术的目的。 二、实验编程环境 编程环境:Visual C++。 三、实验要求 利用c语言实现树的抽象数据类型的基本操作。 四、基本操作描述 树的结构定义和树的一组基本操作: ADT Tree{ 数据对象D :D 是具有相同特性的数据元素的集合。 数据关系R : 若D 为空集,则称为空树; 若D 仅含有一个数据元素,则R 为空集,否则R={ H} ,H 是如下二元关系: (1) 在D 中存在唯一的称为根的数据元素root,它在关系H 下无前驱; (2) 若D-{ root}≠NULL,则存在D-{ root} 的一个划分D1,D2,D3, „,Dm(m>0),对于任意j≠k(1≤j,k≤m)有Dj∩Dk=NULL,且对任意的i(1≤i≤m),唯一存在数据元素xi∈Di有∈H; (3) 对应于D-{root}的划分,H-{,„,}有唯一的一个划分H1,H2,„,Hm(m>0),对任意j≠k(1≤j,k≤m)有Hj∩Hk=NULL,且对任意i(1≤i≤m),Hi是Di上的二元关系,(Di,{Hi})是一棵符合本定义的树,称为根root的子树。 基本操作P: InitTree(&T); 操作结果:构造空树T。 DestroyTree(&T); 初始条件:树T 存在。 操作结果:销毁树T。 CreateTree(&T,definition); 初始条件:definition 给出树T 的定义。 操作结果:按definition 构造树T。 ClearTree(&T); 初始条件:树T 存在。 操作结果:将树T 清为空树。 TreeEmpty(T); 初始条件:树T 存在。 操作结果:若T 为空树,则返回TRUE,否则返回FALSE。 TreeDepth(T); 初始条件:树T 存在。 操作结果:返回T的深度。 Root(T); 初始条件:树T 存在。 操作结果:返回T 的根。 Value(T,cur_e); 初始条件:树T 存在,cu r_e 是T 中某个结点。 操作结果:返回cu r_e 的值。 Assign(T,cur_e,value); 初始条件:树T 存在,cu r_e 是T 中某个结点。 操作结果:结点cu r_e 赋值为v alu e。 Parent(T,cur_e); 初始条件:树T 存在,cu r_e 是T 中某个结点。 操作结果:若cu r_e 是T 的非根结点,则返回它的双亲,否则函数值为“空”。 LeftChild(T,cur_e); 初始条件:树T 存在,cu r_e 是T 中某个结点...