树和森林
树的存储
双亲表示法
这种方式利用一组连续的存储空间来存储每一个节点。同时在每一个节点增加一个伪指针,用来记录其双亲节点在数组中的位置。
根结点下标为0,伪指针域为-1。如图:双亲表示法
孩子表示法
孩子表示法是将每个结点的孩子结点都用单链表链接起来形成一个线性结构。
n个孩子就会有n个孩子链表。
叶子结点的孩子链表为空表。
如下图是孩子表示法:与双亲表示法是同一颗树。
孩子兄弟表示法
孩子兄弟表示法又称二叉树表示法,即以二叉链表作为存储结构。
每个节点包含三部分内容:结点值,指向结点第一个孩子结点的指针,指向结点下一个兄弟结点的指针(沿此域可以找到结点的所有兄弟结点)。
如下图:与上面表示的都是一棵树
(左边是第一个孩子结点,右边是兄弟结点)
优点:可以方便地实现树转化为二叉树的