資料結構例程 拓撲排序

2021-07-07 05:09:23 字數 663 閱讀 1699

本文是[資料結構基礎系列(7):圖]中第11課時[拓撲排序]的例程。

(程式中graph.h是圖儲存結構的「演算法庫」中的標頭檔案,詳情請單擊鏈結…)

[**]

#include 

#include

#include "graph.h"

void topsort(algraph *g)

}for (i=0; in; i++)

if (g->adjlist[i].count==0) //入度為0的頂點進棧

while (top>-1) //棧不為空時迴圈

p=p->nextarc; //找下乙個相鄰頂點}}

}int main()

, ,,,

,,};arraytolist(a[0], 7, g);

dispadj(g);

printf("\n");

printf("拓撲序列:");

topsort(g);

printf("\n");

return

0;}

資料結構 拓撲排序

設g v,e 是乙個具有n個頂點的有向圖,v中的頂點序列v0,v1,v2,vn 1如果滿足下列條件 若從vi到vj有一條路徑,則在頂點序列中頂點vi必定在vj之前,這樣的序列稱為拓撲序列。對乙個有向圖構造拓撲序列的過程稱為拓撲排序 topological sort 顯然,每乙個可以構造出不止乙個拓撲...

資料結構 拓撲排序

aov網路用有向圖的頂點表示活動,頂點之間的有向邊表示活動間的先後關係,這種有向圖稱為頂點表示活動網路,簡稱aov網路。當限制各個活動只能序列進行時,可以將aov網路中所有頂點排列成乙個線性序列,且vi必須在vj之前,我們就稱這個線性序列為拓撲序列,把對aov網構造拓撲序列的操作稱為拓撲排序。拓撲排...

資料結構 拓撲排序

拓撲排序是圖中重要的操作之一,在實際中應用很廣泛.再aov網中,不應該出現有向環路,因為有環意味著某項活動以自己作為先決條件,這樣就進入了死迴圈.因此,對給定的aov網應該首先判定網中是否存在環 檢測的辦法就是對有向圖進行拓撲排序,拓撲排序是指照有向圖給出的次序關係,將圖中頂點排成乙個線性序列,對於...