之前學習樹多是採用鍊錶的,在羊村捕羊的演算法上,採用了線性儲存,為此學習一下。
雙親表示法區別於,鍊錶,是用線性陣列來存放樹的。
既然是線性的,就用一維陣列來完成,開始想法是,每個陣列的元素為乙個結構體。
typedef struct node
n,*pn;
再用乙個結構體將這個線性陣列的資訊包含起來
typedef struct tree
t,*pt;
一般**架構需要,init、do等函式
int main()
這是三個函式的架構,
看看init_tree()怎麼實現,
enum ;
bool init_tree(pt & i)
create_tree需要手動輸入,
將定以 「子樹 雙親」以0為結束
a -1 a
b 0 b c d
c 0
d 0
0
void create_tree(pt & c)
cout<
void show_tree(pt & s)
a++;
}return aim;
}char seek_data(pt & sd,int symb)
char seek_father(pt & sf,char d)
{int symb=seek_symb(sf,d);
if(symb==-2)
{ cout<
please data father
***a -1
b 0
c 0
d 0
e 2
f 2
g 5
0***
create ok
a -1
b 0
c 0
d 0
e 2
f 2
g 5
f
樹的雙親表示法
演算法思想 將這兩個節點的所有祖先節點從下至上依次存放到兩個陣列中,然後遍歷這兩個陣列,第乙個相等的值便是所求值。include define maxsize 100 typedef struct ptnode ptnode 樹的節點結構 typedef struct ptree ptree 樹pt...
樹的孩子雙親表示法
新增鏈結描述 按照上述部落格,測試了一下這個程式.有兩點說說明一下.首先,博主說使用c語言,我第一次用.c檔案編譯,出現error expected or before token 這是使用了引用 而在c語言中沒有引用的概念,在c語言中是取位址符號.後期改為.cpp檔案即可執行 第二點就是 fflu...
雙親表示法
include include define maxsize 100 typedef struct pnode ptnode typedef struct ptree ptree inittree void creat ptree t,int n t nodes 0 parent 1 void de...