实验目的: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
#pragma warning(disable:4996)
#include<stdio.h>
#include<stdlib.h>
struct element
{
int data;
struct element* next;
};
typedef struct element ele;
ele* read();
ele* insect(ele* head);
void printE(ele* head);
int main()
{
ele* head = read();
head = insect(head);
printE(head);
return 0;
}
ele* read()
{
ele* head = (ele*)malloc(sizeof(struct element));
head->next = NULL;
int num, temp = 1;
scanf("%d", &num);
ele* p = (ele*)malloc(sizeof(struct element));
while (1)
{
p->next = (ele*)malloc(sizeof(struct element));
if (temp == 1)
{
head = p;
}
scanf("%d", &p->data);
if (temp == num)
{
p->next = NULL;
break;
}
p = p->next;
temp++;
}
return head;
}
ele* insect(ele* head)
{
ele* res = head;
int Data;
scanf("%d", &Data);
ele* p1;
p1 = head;
ele* tmp = (ele*)malloc(sizeof(struct element));
tmp->data = Data;
while (1)
{
if (p1->data > Data)
{
tmp->next = p1;
res = tmp;
break;
}
if (p1->next == NULL)
{
p1->next = (ele*)malloc(sizeof(struct element));
{
p1->next = tmp;
tmp->next = NULL;
}
break;
}
ele* p2 = p1->next;
if (p2->data > Data)
{
tmp->next = p1->next;
p1->next = tmp;
break;
}
p1 = p1->next;
}
return res;
}
void printE(ele* head)
{
ele* p1;
p1 = head;
while (1)
{
printf("%d,", p1->data);
if (p1->next == NULL)
{
break;
}
p1 = p1->next;
}
}