不一定是二叉树
双亲表示法:
每一个节点有两个域构成,结点和双亲的位置,顺序存储结构
#define MAX_TREE_SIZE 100
typedef struct{
ElemType data;//元素
int parent;//双亲位置
}PTNode;
typedef struct{
PTNode nodes[MAX_TREE_SIZE];
int n;//树的节点个数
}PTree;
//孩子表示法,容易找孩子,不容易找父亲,如果还需要双亲的话,建议加一个元素;parent;
typedef struct{
int index;
struct CNode* next;
}CNode;//孩子结点
typedef struct{
ElemType data;
//int parent;//便于找双亲;
CNode *next;//指向第一个孩子的指针
}PNode,PTree[MAX_TREE_SIZE];
//孩子兄弟
typedef struct CSNode{
ElemType data;
struct CSNode *firstchilde,*nextsibling;
}CSNode,*CSTree;