7. 假定用一維陣列a[0 : size-1]來儲存一組元素。如果有n個元素,可以把它們儲存在a[0],..., a[n-1]中。當n超過si ze時, 陣列將不足以儲存所有元素 , 必須分配乙個更大的陣列。類似地,如果元素的數目比size小很多,我們又可能希望 減少陣列的大小, 以便釋放出多餘的空間為其他地方所用。試編寫乙個模板函式changesize1d把陣列a的大小從size變成 tosize。函式首先應該分配乙個新的、大小為tosize的陣列,然後把原陣列a中的n個元素複製到新陣列a中,最後釋放原陣列 a所占用的空間。上機測試該函式。
//
// main.cpp
// test_07
//// created by cc on 14-4-13.
///*
7. 假定用一維陣列a[0 : size-1]來儲存一組元素。如果有n個元素,可以把它們儲存在a[0],..., a[n-1]中。當n超過si ze時, 陣列將不足以儲存所有元素 , 必須分配乙個更大的陣列。類似地,如果元素的數目比size小很多,我們又可能希望 減少陣列的大小, 以便釋放出多餘的空間為其他地方所用。試編寫乙個模板函式changesize1d把陣列a的大小從size變成 tosize。函式首先應該分配乙個新的、大小為tosize的陣列,然後把原陣列a中的n個元素複製到新陣列a中,最後釋放原陣列 a所占用的空間。上機測試該函式。
*/#include using namespace std;
template void changearraysize(t* &array, int size, int tosize);
int main(int argc, const char * argv)
//改變陣列大小
changearraysize(array, 10, 20);
//修改資料
for (int i = 0 ; i < 20 ; i++)
//列印觀察是否改變成功
for (int i = 0; i < 20; i++)
return 0;
}template void changearraysize(t* &array, int size, int tosize)
delete array;
array = temparray;
}
輸出結果如下圖:
資料結構與演算法 動態匹配演算法
如下 示例 package algorithm 動態匹配演算法解決揹包問題 public class packed int weight 表示揹包中的最大容量 int m 4 定義乙個二維陣列表示存放的最大 int v new int weight.length 1 m 1 定義乙個二維陣列來表示將...
演算法與資料結構 動態規劃
動態規劃 dp 的基本思想是 當前子問題的解可由上一子問題的解得出。動態規劃演算法通常基於由乙個遞推公式 狀態轉移方程 和若干個初始狀態 狀態 應用 1 lis longest increasing subsequence 求乙個陣列中的最長非降子串行的長度。子問題 我們可以考慮先求a 0 a 1 ...
演算法與資料結構 動態規劃
用遞迴求解問題時,反覆的巢狀會浪費記憶體。而且更重要的一點是,之前計算的結果無法有效儲存,下一次碰到同乙個問題時還需要再計算一次。例如遞迴求解 fibonacci 數列,假設求第 n 位 從 1 開始 的值,c 如下 include intfib int n return fib n 1 fib n...