数的存储结构:
1.双亲表示法:
以一组连续的空间存储数的节点,同时在每个元素中,附带一个用于指示其双亲节点在数组中的下标的指示器。
1
2
3
4
|
typedef
struct
TreeNode{
int
data;
//假设数据域是整型
int
parent_index;
//双亲节点所在的数组下标值
}TreeNode;
|
2.孩子表示法:
与双亲表示法相反,每个节点在保存数据的同时记录了其左右孩子的下标
1
2
3
4
5
|
typedef
struct
TreeNode{
int
data;
//假设数据域是整型
int
left_child_index;
//左孩子所在的数组下标值
int
right_child_index;
//右孩子所在的数组下标值
}TreeNode;
|
3.孩子兄弟表示法
在存储结点信息的同时,附加两个分别指向该结点最左孩子和右邻兄弟的指针域leftmostchild和rightsibling,即可得树的孩子兄弟链表表示
这种存储结构的最大优点是:它和二叉树的二叉链表表示完全一样。可利用二叉树的算法来实现对树的操作。
顺序存储表示法 是错误的,错误在于概念太模糊。树的存储分为顺序存储和链式存储,而顺序存储中又分为以上三种方式。