师--链表的结点插入

来源:互联网 发布:suse网络不通 编辑:程序博客网 时间:2024/06/04 19:03

师--链表的结点插入

Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic

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

 

Author


01#include<bits/stdc++.h>
02using namespace std;
03 
04struct node
05{
06    int data;
07    node *next;
08};
09int len;
10node *head;
11 
12void Insert(int m,int n)
13{
14    node *p,*tail;
15    tail=head;
16    for(int i=0;i<m&&i<len;i++)//从头结点处一直到序列m点,或者直到指向空
17        tail=tail->next;
18    p=new node;
19    p->data=n;
20    p->next=tail->next;
21    tail->next=p;
22    len++;
23}
24 
25void print()
26{
27    node *p;
28    p=head->next;
29    while(p)
30    {
31        if(p->next)//为啥不能是p呢?
32            printf("%d ",p->data);
33        else
34            printf("%d\n",p->data);
35        p=p->next;
36    }
37}
38 
39int main()
40{
41    int t,m,n;
42    while(~scanf("%d",&t))
43    {
44        head=new node;
45        len=0;
46        for(int i=0;i<t;i++)
47        {
48            scanf("%d%d",&m,&n);
49            Insert(m,n);
50        }
51        print();
52    }
53    return 0;
54}

0 0
原创粉丝点击