5.4.1 顺序存储结构
实现:按满二叉树的结点层次编号,依次存放二叉树中的数据元素。
完全二叉树使用顺序存储结构时:
当二叉树既不是满二叉树又不是完全二叉树时:
特点:结点间关系蕴含在其存储位置中,容易造成空间浪费,它适用于满二叉树和完全二叉树。
5.4.2 二叉树的链式存储结构
5.4.2.1 二叉链表
二叉链表每个结点最多有两个孩子,结点有一个数据域和两个指针域。结点结构如下图所示:
结点结构定义:
typedef struct BiTNode
{
ElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode, *BiTree;
结构示意图:
5.4.2.2 三叉链表
三叉链表在二叉链表的基础上每个结点再增加一个指针域,这个指针域指向该结点的双亲结点。结点结构如下图所示:
结点结构定义:
typedef struct TriTNode
{
ElemType data;
struct TriTNode *lchild, *parent, *rchild;
}TriTNode, *TriTree;