树的存储结构
/*树的存储结构*/
/*双亲表示法*/
#define MAXSIZE 200
typedef char ElemType;
typedef struct PNode//双亲表示法的结点定义
{
ElemType data;
int parent;//指示结点的双亲
}PNode;
typedef struct//双亲表示法的类型定义
{
PNode node[MAXSIZE];
int num;//结点的个数
}PTree;
/*孩子表示法*/
#define MAXSIZE 200
typedef char ElemType;
typedef struct CNode//孩子表示法的结点定义
{
int child;
struct CNode *next;//指向下一个结点
}ChildNode;
typedef struct//n个结点数据与孩子链表指针构成一个结构
{
ElemType data;
ChildNode *firstchild;//孩子链表的指针
}DataNode;
typedef struct//孩子表示法类型定义
{
DataNode node[MAXSIZE];
int num,root;//结点的个数,根结点在顺序表中的位置
}CTree;
/*孩子兄弟表示法*/
typedef char ElemType;
typedef struct CSNode//孩子兄弟表示法类型定义
{
ElemType data;
struct CSNode *firstchild,*nextsibling;//指向第一个孩子和下一个兄弟
}CSNode,*CSTree;
树的孩子兄弟链表应用举例
头文件:函数的声明
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#inclu