/**
* 這裡不能用鄰接矩陣的形式儲存整個圖,因為可能會出現重邊的問題。
* 如果是簡單的重邊,取最短邊即可,但是本題需要求出所有的最短路徑,所以更長的邊
* 對結果會有影響
*/#include#include#include#include#include#include#include#include#include#includeusing namespace std;
const int maxn=100005;
int n;
int root;
vectorchild[maxn];//儲存所有的孩子結點
vectororder;
void postorder(int cur)
order.push_back(cur);
}int main()else child[parent].push_back(i);
} postorder(0);
int size=order.size();
for(int i=0;icout
}
樹的雙親表示法
之前學習樹多是採用鍊錶的,在羊村捕羊的演算法上,採用了線性儲存,為此學習一下。雙親表示法區別於,鍊錶,是用線性陣列來存放樹的。既然是線性的,就用一維陣列來完成,開始想法是,每個陣列的元素為乙個結構體。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...