6.3.1 顺序存储结构 用一组地址连续的存储单元存储二叉树中的数据元素。 二叉树的顺序存储结构的定义如下: const MAXSIZE = 100; // 暂定二叉树中结点数的最大值为100 typedef struct { ElemType *data; // 存储空间基址(初始化时分配空间) int nodeNum; // 二叉树中结点数 } SqBiTree; // 二叉树的顺序存储结构 为了能在存储结构中反映出结点之间的逻辑关系,必须将二叉树中结点依照一定规律安排在这组存储单元中。
对于一般的二叉树,可对照完全二叉树的编号进行相应的存储,但在没有结点的分量中需填充空白字符。显然,这种存储表示方法只适合于完全二叉树,对于一般的二叉树将造成存储空间的很大浪费。因此二叉树的常用存储结构是链表。 |
按照数据结构的"顺序存储映象"的定义,在顺序存储结构中没有附加信息,因此对二叉树的顺序存储结构,也只是以一组地址连续的存储空间存放二叉树中的数据元素。只是不能以"存储位置相邻"来表示 "后继"关系。 根据上节所述二叉树的特性五,可推出顺序存储结构中"双亲"和"孩子"的关系:
|