树的抽象数据类型定义: 基本操作(之二) TREEEMPTY (T) 初始条件:树T存在 操作结果:若T为空树,则返回TURE,否则 FALSE。 TREEDEPTH (T) 初始条件:树T存在 操作结果:返回T的深度。 ROOT(T) 初始条件:树T存在 操作结果:返回T的根。 VALUE (T CUR E); 初始条件:树T存在,CURE是T中某个结点 操作结果:返回CURE的值
树的抽象数据类型定义: 基本操作(之二) TREEEMPTY(T) • 初始条件:树T存在。 • 操作结果:若T为空树,则返回TURE,否则FALSE。 TREEDEPTH(T) • 初始条件:树T存在。 • 操作结果:返回T的深度。 ROOT(T) • 初始条件:树T存在。 • 操作结果:返回T的根。 VALUE(T, CUR_E); • 初始条件:树T存在,CUR_E是T中某个结点。 • 操作结果:返回CUR_E的值
树的抽象数据类型定义: 基本操作(之三) ASSiGN(T, CUR E, VALUE 初始条件:树T存在,CURE是T中某个结点 操作结果:结点CURE赋值为 VALUE。 PARENT(T, CUR E) 初始条件:树T存在,CURE是T中某个结点。 操作结果:若CURE是T的非根结点,则返回它的双亲,否则 函数值为 LEFTCHILD(T, CUR E) 初始条件:树T存在,CURE是T中某个结点。 操作结果:若CURE是T的非叶子结点,则返回它的最左孩子 否则返回“空”。 RIGHTSIBLING (T, CUR E) 初始条件:树T存在,CURE是T中某个结点。 操作结果:若CURE有右兄弟,则返回它的右兄弟,否则函数 值为“空
树的抽象数据类型定义: 基本操作(之三) ASSIGN(T,CUR_E,VALUE) • 初始条件:树T存在,CUR_E是T中某个结点。 • 操作结果:结点CUR_E赋值为VALUE。 PARENT(T,CUR_E) • 初始条件:树T存在,CUR_E是T中某个结点。 • 操作结果:若CUR_E是T的非根结点,则返回它的双亲,否则 函数值为“空”。 • LEFTCHILD(T,CUR_E) • 初始条件:树T存在,CUR_E是T中某个结点。 • 操作结果:若CUR_E是T的非叶子结点,则返回它的最左孩子, 否则返回“空”。 RIGHTSIBLING(T,CUR_E) • 初始条件:树T存在,CUR_E是T中某个结点。 • 操作结果:若CUR_E有右兄弟,则返回它的右兄弟,否则函数 值为“空
树的抽象数据类型定义: 基本操作(之四) inserTChiLD(&T, &P, I, C) 初始条件:树T存在,P指向T中某个结点,1<<P所指结 点的度+1,非空树C与T不相交。 操作结果:插入C为T中P指结点的第I棵子树。 DELETECHILD(&t, &P, D 初始条件:树存在,P指向T中某个结点,1≤P指结点 的度。 操作结果:删除T中P所指结点的第I棵子树。 TRAVERSETREE (T, VISIT ()) 初始条件:树t存在,ⅥSIT是对结点操作的应用函数。 操作结果:按某种次序对T的每个结点调用函数VSIT 次且至多一次。一旦VSIT()失败,则操作失败 3 ADT TREE
树 的 抽 象 数 据 类 型 定 义 : 基本操作(之四) 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棵子树。 TRAVERSETREE(T,VISIT()); • 初始条件:树t存在,VISIT是对结点操作的应用函数。 • 操作结果:按某种次序对T的每个结点调用函数VISIT() 一次且至多一次。一旦VISIT()失败,则操作失败。 }ADT TREE