首页 > 学院 > 开发设计 > 正文

师--链表的结点插入

2019-11-06 07:07:10
字体:
来源:转载
供稿:网友

师--链表的结点插入

Time Limit: 1000MSMemory Limit: 65536KB

PRoblem Description

给出一个只有头指针的链表和 n 次操作,每次操作为在链表的第 m 个元素后面插入一个新元素x。若m 大于链表的元素总数则将x放在链表的最后。

Input

多组输入。每组数据首先输入一个整数n(n∈[1,100]),代表有n次操作。接下来的n行,每行有两个整数Mi(Mi∈[0,10000]),Xi。

Output

对于每组数据。从前到后输出链表的所有元素,两个元素之间用空格隔开。

Example Input

41 11 20 3100 4

Example Output

3 1 2 4

Hint

代码如下:

#include <stdio.h>  #include <stdlib.h>    struct node  {      int data;      struct node *next;  };  int len;  struct node *head;    void Insert(int m,int n)  {      struct node *p,*q;      p=head;      for(int i=0;i<m&&i<len;i++)        p=p->next;      q= (struct node *)malloc(sizeof(struct node));      q->data=n;      q->next=p->next;      p->next=q;      len++;  }    void print()  {      struct node *p;      p=head->next;      while(p)      {          if(p->next)              printf("%d ",p->data);          else              printf("%d/n",p->data);          p=p->next;      }  }    int main()  {      int t,m,n;      while(~scanf("%d",&t))      {          head=(struct node *)malloc(sizeof(struct node));        len=0;          for(int i=0;i<t;i++)          {              scanf("%d%d",&m,&n);              Insert(m,n);          }          print();      }      return 0;  }  


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表