已知给出的树结构如下图:
用代码实现方式如下:
/*
孩子表示法:浪费资源
双亲孩子表示法:数组和链表的结合
*/
/*
1.双亲孩子表示法定义一个数结构,运用结构体指针的编程方式
2.找到每个结构之间的联系,此套系统是倒序构建的
*/
#define MAX_TREE_SIZE 100
//孩子结点
typedef struct CTnode
{
int child; //孩子结点的下标
struct CTnode * next; //定义下一个孩子结点的指针
}* ChildPtr; //定义结构体指针,指向此孩子结构体
//表头结构,一行元素
typedef struct
{
char data; //存放在树中节点的数据
int parent; //存放在节点的双亲下标
ChildPtr firstchild; //定义结构体指针是指向第一个孩子的指针
}CTBox; //双亲结构的别名
//树结构
typedef struct
{
CTBox node(MAX_TREE_SIZE);//定义双亲节点类型的结构体数组,大小为100;
int r,n; //树结构的根的位置和节点数
};