二叉树顺序存储结构
二叉树的顺序存储结构就是用一维数组存储二叉树中的结点,并且结点的存储位置,也就是数组的下标要能体现结点之间的逻辑关系,比如双亲和孩子的关系,左右兄弟的关系等。
一颗完全二叉树如下图所示:
将这颗二叉树存入到数组中,相应的下标对应其同意的位置,如图所示:
值得注意的是 ,顺序结构一般只用于完全二叉树。
二叉链表
二叉树每个结点最多有两个孩子,所以为它设计一个数据域和两个指针域,这样构成的链表叫做二叉链表。
其中data是数据域,然后lchild和rchild是指针域。二叉链表的结构定义代码如下:
typedef struct BiTNode //结点结构
{
TElemType data; //结点数据
struct BiTNode *lchild, *rchild; //左右孩子指针
}BiTNode, BiTree;
结构示意图如图所示: