二叉树的顺序存储结构

用数组来存储:

二叉树的结点编号,作为数组的下标:从上到下,每一层从左到右,把每一个元素存储在他的下标为他的编号的地方

二叉树的顺序存储类型定义::

还是定义一个数组存储的最大空间,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,空一些元素,浪费空间,

所以适合于满二叉树和完全二叉树的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值