由aov網構造拓撲序列的拓撲排序演算法主要是迴圈執行以下兩步,直到不存在入度為0的頂點為止。
(1) 選擇乙個入度為0的頂點並輸出之;
(2) 從網中刪除此頂點及所有出邊。
附上原始碼(鏈式前向星儲存,鄰接矩陣一樣):
void
tuopu()
}}}}
}
注:拓撲排序不唯一分界線——--------------------------------------------分界線
要輸出所有的拓撲排序肯定要嘗試所有的順序
這裡用到的回溯很簡單,如果要詳細了解的話
最近事情比較多,沒什麼精力時間單獨寫一篇回溯的詳解
回溯dfs:
void
dfs(
int num,string s)
for(
int i=
1;i<=n;i++)if
(s.length()
>
0) s=s+
"->"
+itoa
(i);
else s+
=itoa
(i);
dfs(num+
1,s)
;//開始回溯
vis[i]=0
;for
(int j=e[i]
.first;j;j=e[j]
.next)
s=tem_s;}}
}
itoa自己寫的轉換函式
string itoa
(int x)
return s2;
}
找了個好理解的例子~
拓撲排序 輸出
拓撲排序 題目1449 確定比賽名次 時間限制 1 秒 記憶體限制 128 兆 特殊判題 否 提交 1879 解決 723 題目描述 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,...
輸出n以內所有的素數
目錄描述輸出n以內所有的素數。保證 n 是100以內的整數。樣例輸入 5 輸出 2,3,5 方法一 include include include using namespace std 判斷乙個整數是否為素數 bool isprime int n int num sqrt n 從 2,sqrt n...
所有的排序演算法總結
1.快排 時間複雜度o nlogn 最壞o n2 空間複雜度最好logn,最壞n void quick sort vector b,int l,int r b i base quick sort b,l,i 1 quick sort b,i 1,r 2.插入排序 o n2 穩定,原地排序 void ...