拓撲排序 九度1448

2021-07-27 14:53:48 字數 1117 閱讀 1303

題目:

註解:自己用陣列實現的,沒有用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型別字串的比較規則一致 在排序時如果該字串中包含大寫字母,則當作小寫字母處理,保證沒有相同大小的字串,...