师--链表的结点插入

    xiaoxiao2021-03-25  91

    师--链表的结点插入

    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

    4 1 1 1 2 0 3 100 4

    Example Output

    3 1 2 4

    Hint

     

    Author

    #include<stdio.h> #include<stdlib.h> struct node {     int data;     struct node*next; }; struct node*add(int m, int x,struct node*head) {     struct node*q;     q = (struct node*)malloc(sizeof(struct node));     q->data = x;     q->next = NULL;     struct node*p = head->next;     struct node*pp = head;     while(m--&&p)     {         p = p->next;         pp = pp->next;     }     if(m)     {         pp->next = q;         q->next = p;     }     else     {         pp->next = q;         q->next = NULL;     }     return head; } int main() { int n, m ,x; while(~scanf("%d ",&n)) {      struct node*head;      head = (struct node*)malloc(sizeof(struct node));      head->next = NULL;      while(n--)      {          scanf("%d%d",&m,&x);          head = add(m,x,head);      }      head = head->next;      while(head)      {          printf("%d",head->data);          head = head->next;          if(head)             printf(" ");      }      printf("\n"); } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-17508.html

    最新回复(0)