樹的表示方法
阿新 • • 發佈:2018-11-10
樹是n(n>=0)個結點的有限集。當n=0時稱為空樹,在任意一個非空樹中,1、有且只有一個稱為根的結點,2、當n>1時,其餘結點可分為m(m>0)個互不相交的有限集T1,T2,。。。Tm,其中每一個集合本身又是一個樹,並且稱為根的子樹。如下圖:
該樹的度為3,深度為3.
樹的表示方法一:
data | parent | |
0 | A | -1 |
1 | B | 0 |
2 | D | 1 |
3 | E | 1 |
4 | F | 1 |
5 | C | 0 |
6 | G | 5 |
7 | H | 5 |
//樹的表示方法一 #define MAX_NODE_SIZE 100 typedef int ElemType; typedef struct Node { ElemType data; //結點資料 int parent; //結點雙親位置 }TNode; typedef struct Tree { TNode data[MAX_NODE_SIZE]; int r; //根的位置 int n; //結點數目 }PTree;
樹的表示方法二:
#define MAX_TREE_SIZE 100
typedef char ElemType;
typedef struct CTNode
{
int child;
struct CTNode *next;
}*ChildPtr;
typedef struct
{
ElemType data;
int parent;
ChildPtr firstchild;
}CTBox;
typedef struct
{
CTBox nodes[MAX_TREE_SIZE];
}