数据结构二叉树顺序存储结构

img


sqbitree bt;这个语句是什么意思啊
实在是看不懂了,sqbitree不是一个数组吗

typedef TElemType SqBiTree[MAX_TREE_SIZE] 

这一句使用typedef 定义了一种类型,类型名称就是 SqBiTree,这是一个自定义的类型,它其实就是数组类型;

SqBiTree bt;  

这一句,就是使用SqBiTree类型,定义了一个变量bt;
这个变量其实就是 TElemType bt[MAX_TREE_SIZE] 这样定义的,所以你可以认为它就是个数组,当数据来使用。

是的,它是一个数组,也是一个用数组存储的二叉树。
好比一本书,它也是一堆印刷了字的纸。
用数组存储二叉树的时候,根节点在下标0,然后一层一层往后

           1
      2        3
4     5     6     7
89101112131415
...

表示为
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
对于每个节点,其父节点就是 /2,子节点就是x2和x2+1