用c++建立5个元素的顺序表,如s=sqlist=(1,2,3,4,5),实现顺序表建立的基本操作。 在sqlist ,=(1,2,3,4,5)的元素4和5之间插入一个元素9,实现顺序表插入的基本操作。 在sqlist []=(1,2,3,4,9,5)中删除指定位置(i=5)上的元素9,实现顺序表的删除的基本操作。 输出顺序表中的所有元素。 查找顺序表中指定元素。
时间: 2023-05-30 14:04:52 浏览: 594
以下是用C语言实现的顺序表基本操作,包括建立、插入、删除和输出操作:
```c
#include <stdio.h>
#define MAXSIZE 5 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 顺序表存储的数据
int length; // 顺序表的当前长度
} SqList;
// 初始化顺序表
void initList(SqList *L) {
for(int i=0; i<MAXSIZE; i++) {
L->data[i] = 0;
}
L->length = 0;
}
// 在顺序表的指定位置插入元素
int insertList(SqList *L, int pos, int element) {
if(pos < 1 || pos > L->length+1) {
return 0; // 插入位置不合法
}
if(L->length == MAXSIZE) {
return 0; // 顺序表已满,无法插入新元素
}
for(int i=L->length-1; i>=pos-1; i--) {
L->data[i+1] = L->data[i]; // 将元素后移一位
}
L->data[pos-1] = element; // 插入新元素
L->length++; // 顺序表长度加1
return 1;
}
// 在顺序表的指定位置删除元素
int deleteList(SqList *L, int pos) {
if(pos < 1 || pos > L->length) {
return 0; // 删除位置不合法
}
for(int i=pos-1; i<L->length-1; i++) {
L->data[i] = L->data[i+1]; // 将元素前移一位
}
L->length--; // 顺序表长度减1
return 1;
}
// 输出顺序表中的所有元素
void printList(SqList *L) {
for(int i=0; i<L->length; i++) {
printf("%d ", L->data[i]);
}
printf("\n");
}
// 查找顺序表中指定元素
int searchList(SqList *L, int element) {
for(int i=0; i<L->length; i++) {
if(L->data[i] == element) {
return i+1; // 找到了,返回元素在顺序表中的位置
}
}
return 0; // 没有找到
}
int main() {
SqList L;
initList(&L); // 初始化顺序表
for(int i=1; i<=5; i++) {
L.data[i-1] = i; // 给顺序表赋初值
L.length++;
}
printf("原始顺序表:");
printList(&L); // 输出原始顺序表
insertList(&L, 5, 9); // 在4和5之间插入元素9
printf("插入元素后的顺序表:");
printList(&L); // 输出插入元素后的顺序表
deleteList(&L, 5); // 删除位置为5的元素
printf("删除元素后的顺序表:");
printList(&L); // 输出删除元素后的顺序表
int pos = searchList(&L, 3); // 查找元素3在顺序表中的位置
if(pos > 0) {
printf("元素3在顺序表中的位置是:%d\n", pos);
} else {
printf("元素3不在顺序表中。\n");
}
return 0;
}
```
程序的输出结果为:
```
原始顺序表:1 2 3 4 5
插入元素后的顺序表:1 2 3 4 9 5
删除元素后的顺序表:1 2 3 4 5
元素3在顺序表中的位置是:3
```
阅读全文