使用c语言设计一个算法,输出非空顺序表L中第i(1≤i≤n)个元素,若没有找到该元素,输出“不存在该元素”标志
时间: 2024-05-03 18:22:53 浏览: 138
这里提供一种简单的实现方式:
```c
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 存放元素的数组
int length; // 当前顺序表的长度
} SqList; // 顺序表的结构体定义
void initList(SqList *L) { // 初始化顺序表
L->length = 0; // 将顺序表长度置为0,表示空表
}
void insert(SqList *L, int i, int x) { // 在顺序表的第i个位置插入元素x
if (i < 1 || i > L->length + 1 || L->length == MAXSIZE) { // 判断插入位置是否合法,以及顺序表是否已满
printf("插入位置不合法或顺序表已满\n");
return;
}
for (int j = L->length; j >= i; j--) { // 将i位置之后的元素后移
L->data[j] = L->data[j - 1];
}
L->data[i - 1] = x; // 将x插入到i位置
L->length++; // 顺序表长度加1
}
void print(SqList L) { // 输出顺序表中的元素
if (L.length == 0) { // 如果顺序表为空,输出提示信息
printf("顺序表为空\n");
return;
}
for (int i = 0; i < L.length; i++) { // 逐个输出元素
printf("%d ", L.data[i]);
}
printf("\n");
}
void getElement(SqList L, int i) { // 查找顺序表中的第i个元素
if (i < 1 || i > L.length) { // 判断查找位置是否合法
printf("不存在该元素\n");
return;
}
printf("第%d个元素为:%d\n", i, L.data[i - 1]);
}
int main() {
SqList L;
initList(&L); // 初始化顺序表
insert(&L, 1, 10); // 在第1个位置插入元素10
insert(&L, 2, 20); // 在第2个位置插入元素20
insert(&L, 3, 30); // 在第3个位置插入元素30
print(L); // 输出顺序表中的元素
getElement(L, 2); // 查找第2个元素
getElement(L, 4); // 查找第4个元素
return 0;
}
```
输出结果为:
```
10 20 30
第2个元素为:20
不存在该元素
```
阅读全文
相关推荐


















