資料結構之拓撲排序

2021-07-23 13:31:15 字數 692 閱讀 9921

感覺重點就是鄰接表的建立和tp(toposort()函式中的乙個變數)的變化很奇妙,相當於是乙個靜態指標的用法。

#include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f

#define mem(a,b) memset(a,b,sizeof(a));

#define for(a,b) for(int i = a;ivex[i].edgelist;

while(p)

}}//得到拓撲序的過程

int get_toposort(graphlist *gralist,int *indegree,int *topo,int tp,int node_num)}}

return toponum;

}//拓撲排序過程呼叫的主函式

int toposort(graphlist *gralist,elemtype *topo,elemtype node_num)

coutp->endvex = w[cur].stop;

gralist.vex[i].edgelist = p;

cur++;

flag = w[cur].start;}}

cout<<"鄰接表表示如下:"q = q->nextedge;

}cout<

資料結構之拓撲排序

乙個簡單的求拓撲排序思路是 先找出任意乙個沒有入邊的頂點。然後列印出該頂點,並將它和它的邊一起從圖中刪除。然後,我們對圖的其餘部分採用同樣的方法處理。相應的我們可以定義乙個indegree 入度陣列 儲存所有頂點的入度。具體實現如下 鄰接表 define crt secure no warnings...

資料結構之拓撲排序

拓撲排序 topological order 是指,將乙個有向無環圖 directed acyclic graph簡稱dag 進行排序進而得到乙個有序的線性序列。這樣說,可能理解起來比較抽象。下面通過簡單的例子進行說明!例如,乙個專案包括a b c d四個子部分來完成,並且a依賴於b和d,c依賴於d...

資料結構之拓撲排序

一 什麼是拓撲排序 在圖論中,拓撲排序 topological sorting 是乙個有向無環圖 dag,directed acyclic graph 的所有頂點的線性序列。且該序列必須滿足下面兩個條件 每個頂點出現且只出現一次。若存在一條從頂點 a 到頂點 b 的路徑,那麼在序列中頂點 a 出現在...