已知顺序表,其数据元素类型为整型,编写程序实现如下操作: 编写在第i个元素前插入一个新的数据元素的算法; 主函数中创建并初始化顺序表,使其初始的数据元素为{24, 13, 56, 33, 28, 72},在主函数中调用插 入算法,顺序表中第4个数据元素前插入新元素49,然后打印整个顺序表。
时间: 2024-03-18 20:39:43 浏览: 63
好的,以下是实现该操作的算法,采用C语言编写:
```c
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 存储数据元素的数组
int length; // 顺序表当前长度
} SqList;
// 在第i个元素前插入数据元素e
int ListInsert(SqList *L, int i, int e) {
int j;
if (i < 1 || i > L->length + 1) { // 判断插入位置是否合法
return 0;
}
if (L->length >= MAXSIZE) { // 判断顺序表是否已满
return 0;
}
for (j = L->length; j >= i; j--) { // 将第i个元素及之后的元素向后移动
L->data[j] = L->data[j-1];
}
L->data[i-1] = e; // 插入新的数据元素e
L->length++; // 顺序表长度加1
return 1;
}
int main() {
SqList L; // 定义顺序表L
int i;
int init_data[6] = {24, 13, 56, 33, 28, 72}; // 初始数据元素
L.length = 6; // 初始化顺序表的长度
for (i = 0; i < L.length; i++) { // 将初始数据元素存入顺序表L中
L.data[i] = init_data[i];
}
ListInsert(&L, 4, 49); // 在第4个元素前插入数据元素49
for (i = 0; i < L.length; i++) { // 输出顺序表L中的所有元素
printf("%d ", L.data[i]);
}
return 0;
}
```
输出结果为:
```
24 13 56 49 33 28 72
```
其中,ListInsert函数实现在顺序表L的第i个元素前插入数据元素e的操作。主函数中创建并初始化顺序表L,并在第4个元素前插入数据元素49,最后输出整个顺序表L的所有元素。
阅读全文