題目:
註解:自己用陣列實現的,沒有用vector,有點笨吧!【後附 王道正規解答】
#include
using
namespace
std;
int incount[110];//記錄入度
struct relation rt[110];
int main()
for (int i = 0; i < m; i++)
int num = 0;
for (int i = 0; i < n; i++)
}//for-j
//刪除以j為起點的所有邊
for (int k = 0; k < m; k++)
}}//for-i
if (num == n) //如果入度為0的點總數為n,即為拓撲排序
printf("yes\n");
else
printf("no\n");
}return
0;}
【**:王道機試指南】
#include
#include
#include
using
namespace
std;
vector
edge[501]; //鄰接鍊錶【下標為結點, 其中所裝為其指向的點】
queue
q; //儲存入度為0的結點
int main()
while (m--)
while (q.empty() == false) q.pop();//清佇列
//核心步驟開始
for (int i = 0; i < n; i++)
int cnt = 0; //記錄入度為0的結點數
while (q.empty() == false)
}//while
if (cnt == n) puts("yes");
else
puts("no");
}//while
return
0;}//main
拓撲排序 入度
換個形象點的解釋,我們在學習一門課程之前,應該需要一定的預備知識,比如在學習b課程之前我們需先學習a 後用 x,y 表示x課程是y課程的預備知識,其實與上述有序偶的含義相同 則有 a,b 我們還有 c,b b,d e,d d,f d,g h,g 現在要求你合理安排a h這些課程的學習順序。這個任務的...
拓撲排序 入度檢測
拓撲排序 若有 a b,則要求a一定要在b之前列印出來。思路 找到乙個入度為0的節點,列印出來,把與之相鄰的節點入度 1 重複上面工作。void topsort graph g int temp new int g n 幫助判斷每個節點是否已經列印出來 for i 0 in i temp i 0 i...
九度oj 文獻排序
考察點在結構體的使用,用了乙個陣列的複製,同時注意字串的結束符為 0 題目描述 現在你的導師給你了乙個待排序的參考文獻列表,要你排好序給他。文獻列表中每一條文獻記錄只佔一行。排序的規則和string型別字串的比較規則一致 在排序時如果該字串中包含大寫字母,則當作小寫字母處理,保證沒有相同大小的字串,...