按值插入有序单链表,使之依旧有序

trawi trawi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
又是考试系统不能通过 诶
题目内容:
给定一个递增整数序列和某个整数M,构造出此递增序列的链表,
并创建以M为值的新结点插入到链表中,使其结果序列依然保持递增顺序。
输入描述
每个输入包含一个测试用例,第1行 长度N(任意 long int范围内的正整数)和 待插入的整数M;
第2行 N个递增的整数代表原递增数列。
输出描述
根据此递增数列,构造出此递增链表,然后将M插入到链表中,输出插入后的链表对应的数列。
数字间隔一个空格,但末尾不能有空格。
输入样例
6 2
-10 -3 1 5 9 30
输出样例
-10 -3 1 2 5 9 30
#include<stdio.h>
#include<malloc.h>
typedef struct Node
{
int data;
struct Node *next;
}Node,*LinkList;
void InsertList(LinkList *L,int m)
{
Node *t,*s;
s=*L;
while(s->next->data<m) s=s->next;
t=(Node*)malloc(sizeof(Node));
t->data=m;
t->next=s->next;
s->next=t;
}
void Print(LinkList L)
{
Node *p;
p=L->next;
while(p->next)
{
printf("%d ",p->data);
p=p->next;
}printf("%d",p->data);
}
int main()
{
LinkList L;
int i,a,m,n;
Node *last,*p;
L=(LinkList)malloc(sizeof(Node));
L->data=0;
L->next=NULL;
last=L;
//输入个数和待插入数
scanf("%d %d",&n,&m);
//输入序列
for(i=0;i<n;i++)
{
scanf("%d",&a);
p=(Node*)malloc(sizeof(Node));
p->data=a;
p->next=NULL;
last->next=p;
last=p;
}
InsertList(&L,m);
Print(L);
return 0;
}

...全文
评论 3
收藏 已收藏
分享
返回顶部
trawi
C语言 70,039 成员 243,237 内容