树(Tree)是n(n≥0)个结点的有限集。若n=0,称为空树;
若n>0:
森林
森林是m(m≥0)棵互不相交的树的集合
树的存储结构
双亲表示法:
实现:定义结构数组。存放树的结点,每个结点含两个域:
特点:找双亲容易,找孩子难

结点代码:
typedef struct PTNode {
TElemType data;
int parents; //双亲位置域
}PTNode;
树结构:
#define MAX_TREE_SIZE 100
typedef struct {
PTNode nodes[MAX_TREE_SIZE};
int r,n; //r为根结点的位置,n为结点个数
}PTree;
孩子链表

孩子结点结构:
typedef struct CTNode {
int child; //存储孩子在顺序表中的下标
struct CTNode *next;
}*ChildPtr;