对于C来说可以算是小函数,对于C++等面向对象的语言来说,仅仅算作成员函数/方法而已。
线性表
零个或多个数据元素的有限序列
线性表的插入
将新元素插入到第i个元素之前,则第i个元素以及后面的元素都需要向后移动一个位置
// 函数原型
int* array_insert_int(int* array, int size, int new, int index);
// 函数定义
int* array_insert_int(int* array, int size, int new, int index)
{
int* newArray = (int*) malloc((size + 1) * sizeof(int));
int i;
for (i = 0; i < size; i++)
*(newArray + i) = *(array + i);
for (i = size; i > index; i--)
*(newArray + i) = *(newArray + i - 1);
*(newArray + index) = new;
return newArray;
}
线性表的删除
删除第i个元素,则后面的元素都需要向前移动一个位置
// 函数原型
int* array_erase_int(int* array, int size, int index);
// 函数定义
int* array_erase_int(int* array, int size, int index)
{
int* newArray = (int*) malloc((size - 1) * sizeof(int));
int i;
for (i = 0; i < index; i++)
*(newArray + i) = *(array + i);
for (i = index; i < size - 1; i++)
*(newArray + i) = *(array + i + 1);
return newArray;
}