带双亲指示的二叉树顺序存储数据结构的定义如下: #define maXsize 20 typedef char datatype;/结点值的类型*/ typedef struct datatype data int child rchild int parent/存放双亲结点的下标* }node;/二叉树结点的类型* node tree [MAXSIZE] intn;/树中实际所含结点的个数*/ int root/存放根结点的下标*
带双亲指示的二叉树顺序存储数据结构的定义如下: #define MAXSIZE 20 typedef char datatype; /*结点值的类型*/ typedef struct { datatype data; int lchild,rchild; int parent; /*存放双亲结点的下标*/ } node; /*二叉树结点的类型*/ node tree[MAXSIZE]; int n; /*树中实际所含结点的个数*/ int root; /*存放根结点的下标*/
7.32链式存储结构 二叉树的链式存储方式下每个结点也包含三个域, 分别记录该结点的属性值及左、右子树的位置。与顺 序存储结构不同的是,其左、右子树的位置不是通过 数组的下标,而是通过指针方式体现,如下图所示 Child data rchild 指针减属性值指针城
7.3.2 链式存储结构 二叉树的链式存储方式下每个结点也包含三个域, 分别记录该结点的属性值及左、右子树的位置。与顺 序存储结构不同的是,其左、右子树的位置不是通过 数组的下标,而是通过指针方式体现,如下图所示: lchild data rchild 指针域 属性值 指针域
root b ACA d A da lles A A (a)一棵二叉树 (b)二叉树的链式存储
a b d c f g e a g f d e b c root (a)一棵二叉树 (b) 二叉树的链式存储