在学习顺序存储结构之前要知道:
二叉树的结构是非线性的;
每一个结点可有两个后继。
对于这种一对多的层次结构,我们应该怎么样合理的存储下来呢?
二叉树既有顺序存储又有链式存储,今天先学顺序存储。
方法:
使用一组连续的存储单元来存放二叉树的数据元素。
使用结点之间的相对位置表示结点之间的关系。
对于满二叉树和完全二叉树来说,可以按照对满二叉树结点连续编号,将各结点数据存放到一组连续的存储单元中,将二叉树中编号为i的结点存放在数组的第i号元素中。
编号规则:
根结点的编号为1;对于编号为i的结点,
左孩子如果存在,则编号为2i;
右孩子如果存在,则编号为2i+1。
如果结点编号为i,则双亲的编号为i/2。