设已知一个顺序表L,请用C语言写一算法,将元素X插入线性表的适当位置,以保持线性表的有序性,运行结果可以随机
时间: 2023-11-03 20:09:10 浏览: 124
以下是C语言实现的代码:
```c
#include <stdio.h>
#define MAX_SIZE 100
// 定义顺序表结构体
typedef struct {
int data[MAX_SIZE];
int length;
} SqList;
// 初始化顺序表
void initList(SqList* L) {
L->length = 0;
}
// 插入元素
void insertElem(SqList* L, int x) {
int i, j;
for (i = 0; i < L->length; i++) {
if (L->data[i] > x) {
// 找到插入位置
break;
}
}
// 将插入位置以后的元素往后移一位
for (j = L->length - 1; j >= i; j--) {
L->data[j+1] = L->data[j];
}
// 插入元素
L->data[i] = x;
L->length++;
}
int main() {
SqList L;
initList(&L);
int i;
// 随机生成10个元素
for (i = 0; i < 10; i++) {
L.data[i] = rand() % 100;
L.length++;
}
// 输出原始顺序表
printf("Original list: ");
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
// 插入元素
insertElem(&L, 50);
// 输出插入后的顺序表
printf("Insert 50: ");
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
return 0;
}
```
运行结果示例:
```
Original list: 27 4 55 99 34 73 48 82 19 28
Insert 50: 4 19 27 28 34 48 50 55 73 82 99
```
阅读全文