树的存储结构
#include <iostream>
#define MAX_TREE_SIZE 100//树中最多结点数
//双亲表示法
typedef struct {//树的结点定义
int data; //数据元素
int parent; //双亲位置域
}PTNode;
typedef struct {//树的类型定义
PTNode nodes[MAX_TREE_SIZE];//双亲表示
int n;//结点数
}PTree;
//孩子表示法
struct CTNode {
int child;//孩子结点在数组中的位置
struct CTNode* next;//下一个孩子
};
typedef struct {
int data;
struct CTNode* firstChild;//第一个孩子
}CTBox;
typedef struct {
CTBox nodes[MAX_TREE_SIZE];
int n, r;//结点数和根的位置
}CTree;
//孩子兄弟表示法
typedef struct CSNode {
int data;//数据域
struct CSNode* firstchild, *Nextsibling;//第一个孩子和右兄弟指针
}CSNode,CSTree;