C语言写建立一个顺序表,包含插入元素,删除元素,查找元素,显示所有元素等基本操作的代码
时间: 2024-06-12 22:09:33 浏览: 103
以下是C语言实现顺序表的基本操作的代码:
```c
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 顺序表的存储空间
int length; // 顺序表的当前长度
} SeqList;
// 初始化顺序表
void initSeqList(SeqList *L) {
L->length = 0;
}
// 插入元素
int insertElement(SeqList *L, int pos, int element) {
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] = element; // 在插入位置放入新元素
L->length++; // 长度加一
return 1; // 插入成功
}
// 删除元素
int deleteElement(SeqList *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--; // 长度减一
return 1; // 删除成功
}
// 查找元素
int searchElement(SeqList L, int element) {
for (int i = 0; i < L.length; i++) {
if (L.data[i] == element) {
return i + 1; // 返回元素的位置
}
}
return 0; // 未找到元素
}
// 显示所有元素
void displayAllElements(SeqList L) {
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SeqList list;
initSeqList(&list);
insertElement(&list, 1, 10);
insertElement(&list, 2, 20);
insertElement(&list, 3, 30);
displayAllElements(list);
deleteElement(&list, 2);
displayAllElements(list);
int pos = searchElement(list, 30);
if (pos != 0) {
printf("Element 30 is at position %d\n", pos);
} else {
printf("Element 30 not found\n");
}
return 0;
}
```
阅读全文