c语言顺序表完成插入,删除,查找
时间: 2023-12-27 14:21:43 浏览: 94
顺序表是一种顺序存储结构,可以用数组来实现。下面是C语言中顺序表的插入,删除,查找操作的示例代码:
1. 插入操作
```c
#define MAXSIZE 100 // 定义最大表长
typedef struct {
int data[MAXSIZE]; // 存放顺序表元素
int length; // 存放顺序表长度
}SqList;
// 在顺序表 L 的第 i 个位置插入元素 e
bool ListInsert(SqList *L, int i, int e)
{
int j;
if (i < 1 || i > L->length + 1 || L->length == MAXSIZE)
return false; // i 不合法或顺序表已满,插入失败
for (j = L->length; j >= i; j--)
L->data[j] = L->data[j - 1]; // 将第 i 个位置及之后的元素后移
L->data[i - 1] = e; // 在第 i 个位置插入元素 e
L->length++; // 长度加 1
return true;
}
```
2. 删除操作
```c
// 删除顺序表 L 的第 i 个元素,并返回删除的元素
bool ListDelete(SqList *L, int i, int *e)
{
int j;
if (i < 1 || i > L->length)
return false; // i 不合法,删除失败
*e = L->data[i - 1]; // 将要删除的元素赋值给 e
for (j = i; j < L->length; j++)
L->data[j - 1] = L->data[j]; // 将第 i 个位置之后的元素前移
L->length--; // 长度减 1
return true;
}
```
3. 查找操作
```c
// 在顺序表 L 中查找元素 e,返回其下标,若找不到则返回 -1
int LocateElem(SqList L, int e)
{
int i;
for (i = 0; i < L.length; i++)
if (L.data[i] == e)
return i; // 找到元素 e,返回下标
return -1; // 找不到元素 e,返回 -1
}
```
以上是顺序表的基本操作,可以根据需要进行相应的修改和扩展。
阅读全文