?? 算法 4.3.txt
字號:
算法 4.3
void knapsack ( int w[ ], int T, int n ) {
// 已知n件物品的體積分別為 w[0], w[1], …, w[n],背包的總體積為 T,
// 本算法輸出所有恰好能裝滿背包的物品組合解
InitStack(S); k = 0; // 從第0 件物品考察起
do {
while ( T > 0 && k < n ) {
if ( T - w[k] >= 0 ) { // 第k件物品可選,則k入棧
Push ( S, k ); T - = w[k]; // 背包剩余體積減少wk
}
k ++; // 繼續考察下一件物品
}
if ( T == 0 ) StackTraverse(S); // 輸出一組解,之后回溯尋找下一組解
Pop ( S, k ); T + = w[k]; // 退出棧頂物品,背包剩余體積增添wk
k ++; // 繼續考察下一件物品
} while ( StackEmpty(S) && k == n );
} // knapsack
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -