以一組連續空間儲存結點,各結點附設指示器指示其雙親結點的位置(資料域加雙親下標域)。
首先是輔助巨集:
#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...