樹的雙親表示法

2021-10-04 23:31:04 字數 789 閱讀 3539

演算法思想:

將這兩個節點的所有祖先節點從下至上依次存放到兩個陣列中,然後遍歷這兩個陣列,第乙個相等的值便是所求值。

#include

#define maxsize 100

typedef

struct ptnode

ptnode;

//樹的節點結構

typedef

struct ptree

ptree;

//樹ptree createptree()

;char

getcommongrand

(char

,char

,ptree)

;//建樹

ptree createptree()

return newtree;

}//求最近公共祖先節點

char

getcommongrand

(char ch1 ,

char ch2,ptree pt)

p=pt.tnodep[j]

;while

(p.parent!=-1

) n1[s]

=p.data;

q=pt.tnodep[k]

;while

(q.parent!=-1

) n2[t]

=p.data;

//尋找最近公共祖先

for(i=

0;i<=s;i++)}

}}intmain

(void

)

樹的雙親表示法

之前學習樹多是採用鍊錶的,在羊村捕羊的演算法上,採用了線性儲存,為此學習一下。雙親表示法區別於,鍊錶,是用線性陣列來存放樹的。既然是線性的,就用一維陣列來完成,開始想法是,每個陣列的元素為乙個結構體。typedef struct node n,pn 再用乙個結構體將這個線性陣列的資訊包含起來 typ...

樹的孩子雙親表示法

新增鏈結描述 按照上述部落格,測試了一下這個程式.有兩點說說明一下.首先,博主說使用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...