由於**比較簡單,就直接貼出來了
1 #include 2 #include 3 #include 4 #include 5測試用的有向圖:using
namespace
std;67
8enum
graphtype9;
1516
//結點顏色代表遍歷情況
17enum
colortype18;
2324 template25
class
graph
2634}35
36void
create()
3740
4142
//輸出圖的資訊
43void
display()
4454 cout <
56}5758
//拓撲排序
59void
topologicalsort()
6070
int count = 0;//
輸出結點計數,用於判斷有沒有環
71while (!s.empty())
7286}87
if (count
88 cout << "
圖中存在環!
"<
90private:91
struct
arcnode92;
9798
struct
vertex99;
104105
//最大頂點數
106static
const
int max_vertex_num = 20
;107 vertex m_vertices[max_vertex_num]; //
頂點列表
108int m_vertexnum; //
當前頂點數量
109int m_arcnum; //
當前弧數量
110 graphtype m_type; //
圖型別:有向無權圖、有向帶權圖、無向無權圖、無向無權圖
111112
//結點入度陣列
113int
m_indegreearray[max_vertex_num];
114private
:115
//初始化頂點列表
116void
initvertices()
117125
}126
//插入乙個表結點
127void insert(int headvertex, int
tailvertex, infotype info)
128145 lastnode->next =newnode;
146}
147 ++m_arcnum;
148}
149150
//建立有向無權圖
151void
createdirunweightgraph()
152160
}161
162void
countindegree()
163176 node = node->next;
177}
178}
179}
180}
181};
182183
intmain()
184
輸出結果:
拓撲排序 C語言 鄰接表
資料結構 typedef struct side 邊 side,slink typedef struct vertex 頂點 vertex,adjlist 20 typedef struct graph 圖 graph,glink 建立 void creategraph glink g printf...
C 拓撲排序(鄰接矩陣與鄰接表
博主新手,最近在學習拓撲排序,查閱網上資料發現有些難懂且很多方法的 不盡相同,於是就想著試試自己能不能寫出來,經過一段時間的嘗試,最終實現了拓撲排序,現在將自己的想法發表出來,可能有些瑕疵,希望各位看後不吝賜教 不知道是不是就是網上的方法,之前看網上的沒看懂.建立鄰接矩陣,輸入頂點數和邊數,初始化所...
獎金 拓撲排序 佇列 鄰接表做法
題目描述 由於公司在2013年的銷售業務成績優秀,公司總經理心情大好,決定給每位員工發獎金。公司決定以每個人本年在公司的貢獻為標準來計算他們得到獎金的多少。於是總經理下令召開 m 方會談。每位參加會談的代表提出了自己的意見 我認為員工 a 的獎金應該比 b 高!總經理決定要找出一種獎金方案,滿足各位...