拓撲排序的常見寫法

2021-09-29 03:54:19 字數 824 閱讀 6166

簡單易懂的寫法,但是效率極低:

//b為每個點的入度

for(i=

1;i<=n;i++)}

for(j=

1;j<=n;j++)if

(a[ans]

[j])

b[j]--;

//與入度為0的點相連的點的入度減一

}printf

("%d"

,vis[0]

);for(i=

1;i)printf

(" %d"

,vis[i]);

printf

("\n"

);

o(v+e)寫法,點數+邊數:

queue<

int>q;

vector<

int>edge[n]

;for

(int i=

0;i)//n 節點的總數

if(in[i]==0

) q.

push

(i);

//將入度為0的點入佇列

vector<

int>ans;

//ans 為拓撲序列

while

(!q.

empty()

)}if(ans.

size()

==n)

else

printf

("no answer!\n");

// ans 中的長度與n不相等,就說明無拓撲序列

python 拓撲排序 Python 拓撲排序

python 拓撲排序 在圖論中,由乙個有向無環圖的頂點組成的序列,當且僅當滿足下列條件時,稱為該圖的乙個拓撲排序 英語 topological sorting 每個頂點出現且只出現一次 若a在序列中排在b的前面,則在圖中不存在從b到a的路徑。print 拓撲排序結果 g.topologicalso...

拓撲排序 kahn演算法及dfs的拓撲排序

有個人的家族很大,輩分關係很混亂,請你幫整理一下這種關係。給出每個人的孩子的資訊。輸出乙個序列,使得每個人的後輩都比那個人後列出 sample input 5 0 4 5 1 0 1 0 5 3 0 3 0樣例輸出 sample output 2 4 5 3 1 因為需輸出字典序最小的因而要使用優先...

常見makefile寫法

1 目標名稱,擺脫手動設定目標名稱 cpp view plain copy target notdir curdir all target cmd.curdir 表示makfile當前目錄全路徑 notdir path 表示把path目錄去掉路徑名,只留當前目錄名 這樣就可以得到makefile當前...