資料結構 樹與森林 雙親表示法

2021-08-29 09:35:24 字數 759 閱讀 6241

以一組連續空間儲存結點,各結點附設指示器指示其雙親結點的位置(資料域加雙親下標域)。

首先是輔助巨集:

#define ok 1

#define error 0

#define true 1

#define false 0

#define overflow -1

#define underflow -2

#define null 0

#define max_ptree_size 50010 //樹的最大結點數目

typedef int status;

typedef int telemtype;

樹與森林的雙親表示法儲存結構定義:

typedef struct tnodetnode;

typedef tnode ptree[max_ptree_size];

在二叉樹pt中 找包含a,b兩結點的最小子樹。

int findsmallestptree(ptree pt,int a,int b)

pt[x].flag=1;

int y=b;

while(!pt[y].flag) //b結點不斷向上直到遇到flag 為1的結點 就是最小子樹根節點

y=pt[y].parent;

x=a;

while(pt[x].parent)

return y;

}

樹的雙親表示法

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

樹的雙親表示法

演算法思想 將這兩個節點的所有祖先節點從下至上依次存放到兩個陣列中,然後遍歷這兩個陣列,第乙個相等的值便是所求值。include define maxsize 100 typedef struct ptnode ptnode 樹的節點結構 typedef struct ptree ptree 樹pt...

樹的孩子雙親表示法

新增鏈結描述 按照上述部落格,測試了一下這個程式.有兩點說說明一下.首先,博主說使用c語言,我第一次用.c檔案編譯,出現error expected or before token 這是使用了引用 而在c語言中沒有引用的概念,在c語言中是取位址符號.後期改為.cpp檔案即可執行 第二點就是 fflu...