本文共 1061 字,大约阅读时间需要 3 分钟。
师–链表的结点插入
Time Limit: 1000 ms Memory Limit: 65536 KiBProblem Description
给出一个只有头指针的链表和 n 次操作,每次操作为在链表的第 m 个元素后面插入一个新元素x。若m 大于链表的元素总数则将x放在链表的最后。 Input 多组输入。每组数据首先输入一个整数n(n∈[1,100]),代表有n次操作。 接下来的n行,每行有两个整数Mi(Mi∈[0,10000]),Xi。 Output 对于每组数据。从前到后输出链表的所有元素,两个元素之间用空格隔开。 Sample Input 4 1 1 1 2 0 3 100 4 Sample Output 3 1 2 4代码如下:
#include#include struct node{ int data; struct node *next;};int main(){ int n,m,x; struct node *head,*p,*q; while(~scanf("%d",&n)) { head=(struct node *)malloc(sizeof(struct node)); head->next=NULL; while(n--) { q=head; scanf("%d %d",&m,&x); while(m--&&q->next) q=q->next; p=(struct node *)malloc(sizeof(struct node)); p->data=x; p->next=NULL; p->next=q->next; q->next=p; } q=head->next; while(q) { if(q->next==NULL) printf("%d\n",q->data); else printf("%d ",q->data); q=q->next; } } return 0;}
转载地址:http://gwhwi.baihongyu.com/