文章目录
1. 思路
1.1 按位置插入
将需要插入位置的值以及之后的值全部往后移动一个位置,空出位置,将插入的值赋值给该位置。
1.2 按值查找
通过循环每个元素,与给的值比较,当相等时,返回该位置信息。(查找的值在顺序表中有多个时,会有点问题,只会显示第一个。)
1.3 求长度
返回size即可。
2. 代码
2.1 Sqlist.h
加入
//按位置插入
void insert_pos(Sqlist *list, int pos, ElemType x);
//按值查找,返回位置
int find(Sqlist *list, ElemType x);
//求顺序表长度
int length(Sqlist *list);
2.2 Sqlist.cpp
加入
void insert_pos(Sqlist *list, int pos, ElemType x)
{
if(pos < 0 || pos > list->size)
{
printf("要插入的位置不合法,无法插入数据\n");
return;
}
for(int i = list->size; i > pos; --i)
{
list->base[i] = list->base[i - 1];
}
list->base[pos] = x;