双亲孩子表示法:
把每个结点的孩子结点排列起来,以单链表作存储结构,则n个结点有n个孩子链表,如果是叶子结点则此单链表为空,然后n个头指针又组成一个线性表,采用顺序存储结构,存放一个一维数组中


#define MAX_TREE_SIZE 100
typedef struct ChildNode //孩子结点
{
int childIndex; //孩子结点所在数组的下标
ChildNode* next; //下个孩子结点的指针
}ChildNode;
typedef struct TableNode //表头结构
{
int data; //表头中的数据
int parentIndex; //双亲所在数组的下标
ChildNode* firstchild; //首个孩子结点的指针
}TableNode;
typedef struct Tree //树结构
{
TableNode nodes[MAX_TREE_SIZE]; //结点数组
int r; //根的位置
int n; //结点数
}Tree;
二叉链表:

typedef struct BiTNode
{
int data; //结点数据
BiTNode* lchild; //左孩子指针
BiTNode* rchild; //右孩子指针
}BiTNode;
双亲孩子表示法与二叉链表解析
本文深入探讨了数据结构中双亲孩子表示法的概念,详细介绍了其存储结构与实现方式,同时对比了二叉链表的结构特点,为读者提供了对树形数据结构的全面理解。
636

被折叠的 条评论
为什么被折叠?



