1. 程式人生 > >樹的表示方法

樹的表示方法

樹是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];
}