主要有三种表示法:双亲表示法、孩子表示法、孩子兄弟表示法
1、双亲表示法
数据域+双亲域:找双亲容易,找孩子难
两个改进版本:加长子域(左孩子域)、右兄弟域
2、孩子表示法
(1)多重链表表示法:分为方案一和方案二(每个节点有多个指针,每个指针指向一颗子树的根节点,即多重链表表示法)
(2)孩子链表
多重链表表示法方案一:指针域的个数就等于树的度(各节点的度相差很大时,浪费空间)
多重链表表示法方案二:每个节点指针域的个数等于该节点的度(各节点链表结构不同,需维护节点度的数值,损耗运算时间)
孩子链表:把每个节点的孩子节点排列起来,以单链表作存储结构
3、孩子兄弟表示法:操作容易,破坏了树的层次
任意一棵树,它的节点的第一个孩子如果存在就是唯一的,它的右兄弟如果存在也是唯一的。因此,我们设置两个指针,分别指向该节点的第一个孩子和此节点的右兄弟。
参考:《大话数据结构》,强烈推荐下。。。