#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
struct node
{
int data;
struct node *next;
};
struct node *h,*t,*p;
int main()
{
int n,i,mi,xi,len;
while(scanf("%d",&n)!=EOF)
{
**h=(struct node *)malloc(sizeof(struct node));
h->next=NULL;**//关于h申请内存空间的部分一定要写进while循环内,否则会wa.
len=0;
while(n--)
{
scanf("%d%d",&mi,&xi);
t=h;
for(i=0; i<mi&&i<len; i++)//用来移动到将要插入的元素的位置(插到此元素的后面),若超出长度(i>=len)则跳出循环,若小于长度(mi)则不进行循环。
{
t=t->next;
}
p=(struct node *)malloc(sizeof(struct node));
p->data=xi;
p->next=t->next;
t->next=p;
len++;
}
p=h->next;
while(p->next)
{
printf("%d ",p->data);
p=p->next;
}
printf("%d\n",p->data);
}
return 0;
}
师--链表的结点插入
最新推荐文章于 2022-08-26 21:58:23 发布