作者 daxuejsj
单位 安阳工学院
实验目的:1、掌握线性表的基本知识 2、深入理解、掌握并灵活运用线性表。3、熟练掌握线性表的存储结构及主要运算的实现
已知顺序表L递增有序,将X插入到线性表的适当位置上,保证线性表有序。。
输入格式:
第1行输入顺序表长度,第2行输入递增有序的顺序表,第3行输入要插入的数据元素X。
输出格式:
对每一组输入,在一行中输出插入X后的递增的顺序表。
输入样例:
在这里给出一组输入。例如:
5
1 3 5 7 9
6
输出样例:
在这里给出相应的输出。例如:
1,3,5,6,7,9,
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C程序如下:
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct _SeqList {
ElemType* Data;
int length;
int size;
}SeqList;
void InitList(SeqList* List, int n);
void DestroyList(SeqList* List);
void AppendList(SeqList* List, int p, int Elem);
void InsertList(SeqList* List, int Elem);
void DispList(SeqList* List);
int main() {
ElemType number;
SeqList Nums;
int n;
scanf("%d", &n);
InitList(&Nums, n);
for (int i = 0; i < n; i++) {
scanf("%d", &number);
AppendList(&Nums, i, number);
}
int X;
scanf("%d", &X);
InsertList(&Nums, X);
DispList(&Nums);
DestroyList(&Nums);
return 0;
}
void InitList(SeqList* List, int n) {
List->Data = (ElemType*)malloc(n * sizeof(ElemType));
if (List->Data == NULL) {
printf("Memory allocation failed!");
exit(EXIT_FAILURE);
}
List->length = 0;
List->size = n;
}
void DestroyList(SeqList* List) {
free(List->Data);
}
void AppendList(SeqList* List, int p, int Elem) {
List->Data[List->length] = Elem;
List->length++;
}
void InsertList(SeqList* List, int Elem) {
int i;
for (i = 0; i < List->length; i++) {
if (Elem < List->Data[i]) {
for (int j = List->length; j > i; j--) {
List->Data[j] = List->Data[j - 1];
}
break;
}
}
List->Data[i] = Elem;
List->length++;
}
void DispList(SeqList* List) {
for (int i = 0; i < List->length; i++) {
printf("%d,", List->Data[i]);
}
}