1、二叉树的存储结构
1.1、二叉树的顺序存储结构
顺序存储结构也就是数组,对树这种一对多的逻辑关系结构实现起来是比较困难的,但是二叉树是一种特殊的树,由于它的特殊性,使得用顺序存储结构也可以实现。
将二叉树按层序编号来对应数组的下标,并根据二叉树的性质来确定双亲结点和孩子结点在数组中的位置。
先来看完全二叉树的顺序存储结构。
由此体现出完全二叉树的优越性,由于它定义的严格, 所以用数组也可以反映出完全二叉树的结构。
而对于其他的一般二叉树,也可以将其按完全二叉树的层序编号,将不存在的点设置为空即可。下图浅色结点表示不存在。
根据上图显示,一般二叉树在使用数组实现的时候会存在空间的浪费现象,而如果是右斜树的话,空间的浪费现象会更加严重。
所以顺序存储结构一般只适用于完全二叉树。
1.2、二叉树的链式存储结构
由于使用顺序存储结构实现二叉树会造成空间的浪费,所以我们自然要考虑使用链式存储结构。