用数组来存储:
二叉树的结点编号,作为数组的下标:从上到下,每一层从左到右,把每一个元素存储在他的下标为他的编号的地方
二叉树的顺序存储类型定义::
还是定义一个数组存储的最大空间,100,然后定义一个数组SqBiTree,最多可以放MAXSTSIZE个元素,数组中元素的类型是看你树中存储的是什么类型TElemType
若树中是用来存储表达式的,则TElemType为char......,总之元素是什么类型由自己定义
总结:
现在将这样一个数组,有100个这样TElemType元素类型的数组,定义成了一个类型TypeDef,类型的名字就是数组的名字SqBiTree,然后我们再用数组的名字定义一个变量SqBiTree bt,这个变量实际上就代表了一个数组,即数组bt,可以存放100个元素,类型是TElemType
Bi是二进制的,二分的意思
非满二叉树,非完全二叉树,怎么放?
根结点还是0,仍然是这样的编号
为什么不直接把abcdefg直接存到里面?为什么还要存几个0?因为这样说明f紧跟e,在5号位置,g在6号位置,这个二叉树与原来的不一样,所以要把空结点描述出来,这样存储结构才能表示树的结构,才能从存储结构够恢复回去
接下来的例题,只需要对着数字放即可:
用顺序存储法来存储一棵二叉树,将二叉树按照满二叉树的形式进行编号,依次将元素存储在下标为编号的位置,存储以后还可以恢复,前驱和后继就隐含在下标里头
缺点:1.大小固定,2,空一些元素,浪费空间,
所以适合于满二叉树和完全二叉树的情况