数据结构课程实验指导书
操作结果:构造空二叉树T DestroyBiTree(&T) 初始条件:二叉树T存在 操作结果:销毁二叉树T
CreateBiTree(&T,definition)
初始条件:definition给出二叉树T的定义 操作结果:按definition构造二叉树T ClearBiTree(&T) 初始条件:二叉树T存在
操作结果:将二叉树T清空为空树 TreeBiEmpty(T) 初始条件:二叉树T存在
操作结果:若二叉树T为空树,则返回TRUE,否则返回FALSE TreeBiDepth(T) 初始条件:二叉树T存在 操作结果:返回二叉树T的深度 Root(T)
初始条件:二叉树T存在 操作结果:返回T的根 Value(T,cur_e)
初始条件:二叉树T存在,cur_e是T中的某
- 6 -
数据结构课程实验指导书
个结点
操作结果:返回cur_e的值 Assign(T, cur_e,value)
初始条件:二叉树T存在,cur_e是T中的某个结点
操作结果:结点cur_e赋值为value Parent(T,cur_e)
初始条件:而擦树T存在,cur_e是T中的某个结点
操作结果:若cur_e是非根结点,则返回它的双亲,否则函数值为空 LeftChild(T,cur_e)
初始条件:二叉树T存在,cur_e是T中的某个结点
操作结果:若cur_e是T的非叶子结点,则返回它的最左孩子,否则返回空 RightChild(&T,&p,i)
初始条件:二叉树T存在,cur_e是T中的某个结点
操作结果:若cur_e有右兄弟,则返回它的右兄弟,否则函数值为空 LeftSibling(T,e)
- 7 -
数据结构课程实验指导书
初始条件:二叉树T存在,e是T中的某个结点
操作结果:返回e的左兄弟,若e是T的左孩子或无左兄弟,返回空 RightSibling(T,e)
初始条件:二叉树T存在,e是T中的某个结点
操作结果:返回e的右兄弟,若e是T的右孩子或无右兄弟,返回空 InsertChild(&T,&p,I,c)
初始条件:二叉树T存在,p指向T中某个结点,1<=i<=p所指结点的度+1,非空树c与T不相交
操作结果:插入c为T中p指结点的第i棵子树
DeleteChild(&T,&p,i)
初始条件:树T存在,p指向T中某个结点,1<=i<=p所值结点的度
操作结果:删除T中p所指结点的第i棵子树 PreOrderTravereseTree(T,Visit()) 初始条件:二叉树T存在,Visit是对界定操作的应用函数
- 8 -
数据结构课程实验指导书
操作结果:先序遍历T,对每个结点调用函数visit()一次且仅一次,一旦visit()失败,则操作失败
InOrderTravereseTree(T,Visit()) 初始条件:二叉树T存在,Visit是对界定操作的应用函数
操作结果:中序遍历T,对每个结点调用函数visit()一次且仅一次,一旦visit()失败,则操作失败
PostOrderTravereseTree(T,Visit()) 初始条件:二叉树T存在,Visit是对界定操作的应用函数
操作结果:后序遍历T,对每个结点调用函数visit()一次且仅一次,一旦visit()失败,则操作失败
}ADT Tree 堆栈 ADT Stack{ 数
据
对
象
:
D={
a|aii∈
ElemType,i=1,2,…,n,n>=0}
- 9 -
数据结构课程实验指导书
数据关系:R1={?a,a?|a,a∈D,i=2,…,n} 基本操作:
i?1ii?1iInitStack(&S)
操作结果:构造一个空栈S DestroyStack(&S) 初始条件:栈S已存在 操作结果:栈S被销毁 ClearStack(&S) 初始条件:栈S已存在 操作结果:栈S清为空栈 StackEmpty(S) 初始条件:栈S已存在
操作结果:若S为空栈,则返回TRUE,否则FALSE
StackLength(S) 初始条件:栈S已存在
操作结果:返回S元素的个数,即栈的长度 GeTop(S,&e)
初始条件:栈S已存在且非空 操作结果:用e返回S的栈顶元素 Push(&S,e) 初始条件:栈S已存在
- 10 -
数据结构课程实验报告-实验5



