ADT树的操作
树的最重要的作用之一是用以实现各种各样的抽象数据类型。与表的情形相同,定义在树上的操作也是多种多样的。在这里我们只考虑作为抽象数据类型的树的几种典型操作。
以下的∧表示空结点,∧在树的不同实现方法中有不同的定义。
ADT树的基本运算
运算 | 含义 |
Parent(v,T) | 这是一个求父结点的函数,函数值为树T中结点v的父亲。当v是根结点时,函数值为∧,表示结点v没有父结点。 |
Leftmost_Child(v,T) | 这是一个求最左儿子结点的函数。函数值为树T中结点v的最左儿子。当v是叶结点时,函数值为∧,表示结点v没有儿子。 |
Right_Sibling(v,T) | 这是一个求右邻兄弟的函数,函数值为树T中结点v的右邻兄弟。当v没有右邻兄弟时,函数值为∧。 |
Create(i,x,T1,T2,..,Ti,T) | 这是一族建树过程。对于每一个非负整数i,该函数生成一棵新树T,T的根结点是标号为x的新结点v,并令v有i个儿子,这些儿子从左到右分别为树T1,T2,..,Ti的根。当i=0时,v既是树根,又是树叶。 |
Label(v,T) | 这时一个求标号的函数,函数值就是结点v的标号。 |
Root(T) | 这是一个求树根的函数,函数值为树T的根结点。当T是空树时,函数值为∧。 |
MakeNull(T) | 这是一个过程,它使T成为一棵空树。 |