用c语言写一个顺序表的定义、初始化、赋值、插入、删除、查找的代码
时间: 2023-05-12 18:03:34 浏览: 183
线性表的顺序表示和插入、删除、归并C语言代码实现
4星 · 用户满意度95%
好的,以下是顺序表的定义、初始化、赋值、插入、删除、查找的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 存储数据的数组
int length; // 当前顺序表的长度
} SqList; // 定义顺序表的结构体
// 初始化顺序表
void InitList(SqList *L) {
L->length = 0;
}
// 插入元素
int ListInsert(SqList *L, int pos, int elem) {
if (pos < 1 || pos > L->length + 1 || L->length == MAXSIZE) {
return 0; // 插入失败
}
for (int i = L->length; i >= pos; i--) {
L->data[i] = L->data[i - 1]; // 将插入位置后面的元素依次后移
}
L->data[pos - 1] = elem; // 插入新元素
L->length++; // 长度加1
return 1; // 插入成功
}
// 删除元素
int ListDelete(SqList *L, int pos) {
if (pos < 1 || pos > L->length) {
return 0; // 删除失败
}
for (int i = pos; i < L->length; i++) {
L->data[i - 1] = L->data[i]; // 将删除位置后面的元素依次前移
}
L->length--; // 长度减1
return 1; // 删除成功
}
// 查找元素
int LocateElem(SqList *L, int elem) {
for (int i = 0; i < L->length; i++) {
if (L->data[i] == elem) {
return i + 1; // 返回元素在顺序表中的位置
}
}
return 0; // 没有找到元素
}
int main() {
SqList L;
InitList(&L); // 初始化顺序表
ListInsert(&L, 1, 10); // 在第1个位置插入元素10
ListInsert(&L, 2, 20); // 在第2个位置插入元素20
ListInsert(&L, 3, 30); // 在第3个位置插入元素30
ListDelete(&L, 2); // 删除第2个位置的元素
int pos = LocateElem(&L, 20); // 查找元素20在顺序表中的位置
printf("pos=%d\n", pos); // 输出结果
return 0;
}
```
希望这个代码示例能够帮到你!
阅读全文