C语言//创建一个空的顺序表 //初始化顺序表 //显示顺序表所有元素 //在位序为2的地方插入值10 //显示顺序表所有元素 //删除第3个元素 //显示顺序表所有元素 //查找值为x的元素位置并显示 //查找值为x的元素位置并显示
时间: 2023-05-25 14:05:21 浏览: 133
C语言实现顺序的建立、查找、插入、删除等基本操作
5星 · 资源好评率100%
这是一道基本的线性表题目,我们可以使用数组来实现顺序表,并使用循环来遍历数组元素。
以下是一份可能的解法:
```c
#include <stdio.h>
#define MAXSIZE 100 // 定义最大元素个数
typedef struct { // 定义顺序表结构体
int data[MAXSIZE]; // 数据存储数组
int length; // 当前元素个数
} SqList;
void initList(SqList *L) { // 初始化顺序表
L->length = 0;
}
void showList(SqList L) { // 显示顺序表所有元素
printf("List: ");
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
void insertList(SqList *L, int pos, int value) { // 在位序为pos的地方插入值value
if (pos < 1 || pos > L->length + 1 || L->length == MAXSIZE) {
printf("Invalid position\n");
return;
}
for (int i = L->length - 1; i >= pos - 1; i--) { // 从最后一个元素开始往后移动
L->data[i + 1] = L->data[i];
}
L->data[pos - 1] = value;
L->length++;
}
void deleteList(SqList *L, int pos) { // 删除第pos个元素
if (pos < 1 || pos > L->length) {
printf("Invalid position\n");
return;
}
for (int i = pos; i < L->length; i++) { // 从要删除的元素开始向前移动
L->data[i - 1] = L->data[i];
}
L->length--;
}
void searchList(SqList L, int value) { // 查找值为value的元素位置并显示
for (int i = 0; i < L.length; i++) {
if (L.data[i] == value) {
printf("Value %d found at position %d\n", value, i+1);
return;
}
}
printf("Value %d not found\n", value);
}
int main() {
SqList list;
initList(&list); // 初始化空的顺序表
// 在位序为2的地方插入值10
insertList(&list, 2, 10);
// 显示顺序表所有元素
showList(list);
// 删除第3个元素
deleteList(&list, 3);
// 显示顺序表所有元素
showList(list);
// 查找值为x的元素位置并显示
searchList(list, 5);
searchList(list, 10);
return 0;
}
```
输出结果为:
```
List: 10
List: 10
Value 5 not found
Value 10 found at position 2
```
阅读全文