六 拓撲排序

2022-09-10 07:36:08 字數 1733 閱讀 6956

(1)掌握圖的儲存結構及其基本操作,學會定義圖的鄰接表儲存結構,並能在實際中靈活應用;

(2)掌握拓撲排序演算法;

(3)通過本實驗的具體應用例項,靈活應用拓撲排序並進一步鞏固佇列/棧的運用。

用鄰接表形式儲存以下有向無環圖,進行拓撲排序,輸出相應拓撲序列。若圖中每個頂點都在拓撲序列中,說明圖中無環。

----------圖的結構宣告---------

typedef struct

arcnode

arcnode; //

表結點typedef

struct

vnode

vnode; //

頭結點typedef

struct

graph;

//有向圖

//--------棧結構的宣告--------

typedef struct

sqstack;

//建造乙個空棧

void initstack(sqstack &s)

s.top = s.base

; s.stacksize =stack_init_size;

} //

initstack

//插入元素e為新的棧頂元素

void push(sqstack &s, inte)

//push

//若棧不空,刪除s的棧頂元素,用e返回其值

void pop(sqstack &s, int &e) //

pop//

若棧為空,返回true,否則返回false

bool

stackempty(sqstack s)

//有向圖的初始化

void creategraph(graph &g)

//邊的初始化

cout << "

請輸入邊的起點和終點所對應的編號(0-11)

"<

for (int i = 0; i < g.arcnum; i++)

}//輸出圖g的鄰接表

void

print(graph g)

cout

<

}}//

求各頂點的入度

void findindegree(graph g, int *indegree)

}}//

拓撲排序

訓練六 拓撲排序演算法

1.目的要求 1 構造有向無環圖dag directed acyclic graph 2 理解什麼是拓撲序列 2 利用拓撲排序演算法解決online judge上面的題目 2.實驗內容 1 給定乙個工程圖,按照拓撲序列將工程序列進行重新排序輸出 hdu1285 3.實驗報告 1 include in...

python 拓撲排序 Python 拓撲排序

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

python 排序 拓撲排序

在電腦科學領域中,有向圖的拓撲排序是其頂點的先行排序,對於每個從頂點u到頂點v的有向邊uv,在排序的結果中u都在v之前。如果圖是有向無環圖,則拓撲排序是可能的 為什麼不說一定呢?圖論 是組合數學的乙個分支,它和其他分支比如 群論 拓撲學 矩陣論有著密切的關係。圖是圖論的主要研究物件。圖是由若干給定的...