每周学习日志(二)

学习了树的存储方法
存储方法有:双亲表示法、孩子表示法、孩子兄弟表示法。
双亲表示法:1、先按层序编号。2、按结点的层序编号,在数组中对应单元存放一个结点(data,parent)3、结点data部分存放树结点中存储的数据元素。4、结点parent部分存放该结点双亲结点的编号。

存储结构

 #define MAX 100 
typedef struct TNode 
{ DataType data; 
int parent; 
}TNode;
typedef struct 
{ TNode tree[MAX]; 
int nodenum;//结点数
 }ParentTree;
孩子表示法

孩子链表结点的定义

typedef struct ChildNode
 { int Child; 
struct ChildNode *next; 
}ChildNode;

顺序表结点的定义

typedef struct 
{ DataType data;
 ChildNode *FirstChild;
 }DataNode;

树的定义

typedef struct 
{ DataNode nodes[MAX];
 int root;//根结点在线性表的位置 
int num;//结点个数 
}ChildTree;
孩子兄弟表示法
1、也叫左孩子-右兄弟表示法。2、链表中每个结点的两个链域分别指向该结点的最 左儿子和右邻兄弟。

存储结构

typedef struct CSNode 
{ DataType data; //结点信息 
struct CSNode *FirstChild;//第一个孩子 
struct CSNode *NextSibling;//下一个兄弟
 }CSNode, *CSTree;
原文地址:https://www.cnblogs.com/wananouo/p/12860159.html