最近在读《数据结构、算法与应用》这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着很多的问题,也可能是错误的实现,如果大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正,谢谢
// // main.cpp // Test_07 // // Created by cc on 14-4-13. // Copyright (c) 2014年 cc. All rights reserved. // /* 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 <iostream> using namespace std; template <typename T> void changeArraySize(T* &array, int size, int toSize); int main(int argc, const char * argv[]) { int n = 10; int* array = new int[n]; //填充数据 for (int i = 0; i < 10; i++) { array[i] = i + 1; } //改变数组大小 changeArraySize(array, 10, 20); //修改数据 for (int i = 0 ; i < 20 ; i++) { array[i] = i + 1; } //打印观察是否改变成功 for (int i = 0; i < 20; i++) { cout << "array[" << i << "]" << array[i] << endl; } return 0; } template <typename T> void changeArraySize(T* &array, int size, int toSize) { T* tempArray = new T[toSize]; for (int i = 0; i < size; i++) { tempArray[i] = array[i]; } delete[] array; array = tempArray; }
《数据结构、算法与应用》第一章习题1.7(动态调整数组大小),布布扣,bubuko.com
《数据结构、算法与应用》第一章习题1.7(动态调整数组大小)
原文:http://blog.csdn.net/oktears/article/details/23620339