顺序表扩容语言写一个单独的函数么
时间: 2024-02-13 15:03:50 浏览: 76
顺序表C++_数据结构实验--顺序表;C++语言_
通常情况下,顺序表的扩容操作会单独写成一个函数来实现,这样可以方便地在需要扩容的地方调用,提高代码的重用性和可维护性。
下面是一个 C++ 实现的顺序表扩容函数示例:
```cpp
void expand_capacity(int*& arr, int& size, int& capacity, float factor) {
int new_capacity = capacity * factor; // 计算新容量
int* new_arr = new int[new_capacity]; // 创建新数组
for (int i = 0; i < size; i++) {
new_arr[i] = arr[i]; // 复制元素到新数组中
}
delete[] arr; // 释放原数组占用的内存空间
arr = new_arr; // 将指向原数组的指针指向新数组
capacity = new_capacity; // 更新顺序表的容量大小
}
```
使用该函数可以在需要扩容的地方调用,例如:
```cpp
int* arr = new int[10]; // 创建初始容量为 10 的数组
int size = 0; // 记录当前数组元素个数
int capacity = 10; // 记录当前数组容量
float factor = 1.5; // 扩容因子
// 向数组中添加元素
for (int i = 0; i < 20; i++) {
if (size == capacity) {
expand_capacity(arr, size, capacity, factor); // 扩容操作
}
arr[size++] = i; // 添加元素
}
```
阅读全文