父親表示法
顧名思義,就是只記錄每個結點的父結點。
int n; int p[MAX_N]; // 指向每個結點的父結點
?
孩子表示法
如上,就是只記錄每個結點的子結點。
int n; int cnt[MAX_N]; // 記錄每個結點的子結點的數量 int p[MAX_N][MAX_CNT]; // 指向每個結點的子結點
?
父親孩子表示法
?就是同時記錄每個結點的父結點和子結點。
int n; int cnt[MAX_N]; // 記錄每個結點的子結點的數量 int p[MAX_N]; // 指向每個結點的父結點 int s[MAX_N][MAX_CNT]; // 指向每個結點的子結點
?
孩子兄弟表示法(二叉樹表示法)
這是一個很好的方法,具體就是將樹轉換成二叉樹,左結點指向自己的第一個子結點,右結點指向自己的第一個右兄弟。
轉換方法可以看這里。
int n; int lt[MAX_N] // 指向每個結點的第一個子結點 int rt[MAX_N] // 指向每個結點的第一個右兄弟