6.6.3 树和森林的孩子兄弟表示法
树和森林的二叉链表(孩子-兄弟)存储表示 |
树中每个结点都设有两个指针, 其一,firstchild 指向该结点的"第一个"子树根结点,其二,nextsibling 指向它的"下一个"兄弟结点。 这里的"第一个"和"下一个"都没有逻辑上的含义,只是在构造存储结构时自然形成的次序。 |
|||||||||
树的孩子-兄弟链表 森林的孩子-兄弟链表 |
对森林来说,可认为各棵树的根结点之间是一个
"兄弟"关系,因此无论树和森林都可以用这样的"二叉链表"表示。由于结点中的两个指针指示的分别为 "孩子"和"兄弟"的关系,故称为"孩子-兄弟链表"
。 例如,上页所示树的孩子-兄弟链表如左图所示。 删除树中的根结点之后,可以得到下列图示的森林,它的孩子-兄弟链表则由指向结点B的指针表示,参见左窗口。
由此,通过存储结构的一致性作为"媒介",可建立森林和二叉树之间一一对应的关系。 |