(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之前。如果圖是有向無環圖,則拓撲排序是可能的 為什麼不說一定呢?圖論 是組合數學的乙個分支,它和其他分支比如 群論 拓撲學 矩陣論有著密切的關係。圖是圖論的主要研究物件。圖是由若干給定的...