樹的雙親表示法

2021-06-29 16:29:51 字數 1189 閱讀 2038

之前學習樹多是採用鍊錶的,在羊村捕羊的演算法上,採用了線性儲存,為此學習一下。

雙親表示法區別於,鍊錶,是用線性陣列來存放樹的。

既然是線性的,就用一維陣列來完成,開始想法是,每個陣列的元素為乙個結構體

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...