师--链表的结点插入
   Time Limit: 1000MS   Memory Limit: 65536KB 
    Problem Description
   给出一个只有头指针的链表和 n 次操作,每次操作为在链表的第 m 个元素后面插入一个新元素x。若m 大于链表的元素总数则将x放在链表的最后。 
  Input
   多组输入。每组数据首先输入一个整数n(n∈[1,100]),代表有n次操作。  
      接下来的n行,每行有两个整数Mi(Mi∈[0,10000]),Xi。  
  Output
   对于每组数据。从前到后输出链表的所有元素,两个元素之间用空格隔开。 
  Example Input
4 1 1 1 2 0 3 100 4
Example Output
3 1 2 4
Hint
Author
| 01 | #include<stdio.h> | 
| 02 | #include<string.h> | 
| 03 | #include<stdlib.h> | 
| 04 | structchain | 
| 05 | { | 
| 06 |     intdata; | 
| 07 |     structchain *next; | 
| 08 | }; | 
| 09 | intmain() | 
| 10 | { | 
| 11 |     intn, num, sum, count; | 
| 12 |     while(~scanf("%d", &n)) | 
| 13 |     {sum = 0; | 
| 14 |     structchain *p, *q, *head; | 
| 15 |     head = (structchain *)malloc(sizeof(structchain)); | 
| 16 |     head->next = NULL; | 
| 17 |     sum = 0; | 
| 18 |     while(n--) | 
| 19 |     { | 
| 20 |         count = 0; | 
| 21 |         q = head; | 
| 22 |         p = (structchain *)malloc(sizeof(structchain)); | 
| 23 |         scanf("%d%d", &num, &p->data); | 
| 24 |         if(num <= sum) | 
| 25 |         { | 
| 26 |             while(count <= num) | 
| 27 |             { | 
| 28 |                 if(count == num) | 
| 29 |                 { | 
| 30 |                     p->next = q->next; | 
| 31 |                     q->next = p; | 
| 32 |                     break; | 
| 33 |                 } | 
| 34 |                 q = q->next; | 
| 35 |                 count++; | 
| 36 |             } | 
| 37 |         } | 
| 38 |         else | 
| 39 |         { | 
| 40 |             while(q->next) | 
| 41 |                 q = q->next; | 
| 42 |             q->next = p; | 
| 43 |             q = p; | 
| 44 |             q->next = NULL; | 
| 45 |         } | 
| 46 |         sum++; | 
| 47 |     } | 
| 48 |     q = head->next; | 
| 49 |     while(q) | 
| 50 |     { | 
| 51 |         printf("%d", q->data); | 
| 52 |         if(q->next) | 
| 53 |             printf(" "); | 
| 54 |         else | 
| 55 |             printf("\n"); | 
| 56 |             q = q->next; | 
| 57 |     } | 
| 58 |     } | 
| 59 |     return0; | 
| 60 | } | 

 京公网安备 11010502036488号
京公网安备 11010502036488号