前言:在学习《大话数据结构》中的第6章树时,感觉在介绍三种存储结构的表示方法时比较凌乱,所以整理了一下。
双亲表示法
1.容易找到双亲结点。
2.找结点的孩子需要遍历整个结构。
改进:
1.增加某个结点最左边孩子的域。
要知道其有多个孩子,必须要其下一个个结点的最左边孩子的域。
用下一个结点最左边孩子的域-这个结点左边孩子的域即这个结点的所有孩子的域
2.增加右兄弟域,
找左兄弟需要遍历整个结构,如果兄弟很多,那么找起来就不容易了。
孩子表示法
1.找某个结点的孩子,只需要找到这个结点的孩子单链表即可。
2.和双亲表示法一样容易遍历整棵树。
3.如果某个结点的孩子很多,那么位于孩子单链表后边的孩子找双亲需要往前遍历到表头数组。
改进:1。在表头数组增加双亲域。(双亲孩子表示法)
孩子兄弟表示法(即二叉树表示法)
- 和孩子表示法差不多容易找孩子,不容易找双亲。
- 可以增加双亲域,那就不如用双亲孩子表示法了。
- 最大的好处就是把一棵复杂的树变成了一棵二叉树。
总结:如果不是特殊的二叉树情况,双亲孩子表示法比较实用。