SuitNdtie

L-Sequence

Apr 5th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<malloc.h>
  3. typedef struct node{
  4.     int data;
  5.     struct node *next;
  6. }nodeT;
  7.  
  8. nodeT* createnode(int data){
  9.     nodeT* newnode = (nodeT*)malloc(sizeof(nodeT));
  10.     newnode->data = data;
  11.     newnode->next = NULL;
  12.     return newnode;
  13. }
  14.  
  15. void printlist(nodeT* head){
  16.     if(head == NULL){
  17.         return;
  18.     }
  19.     printf("%d ",head->data);
  20.     printlist(head->next);
  21. }
  22. int main()
  23. {
  24.     int n,k;
  25.     scanf("%d %d",&n,&k);
  26.     nodeT* head = NULL ;
  27.     nodeT* curr = NULL;
  28.     int i = 0;
  29.     do{
  30.         int x;
  31.         scanf("%d",&x);
  32.         if(head == NULL){
  33.             head = createnode(x);
  34.             curr = head;
  35.         }
  36.         else{
  37.             curr->next = createnode(x);
  38.             curr = curr->next;
  39.         }
  40.         i++;
  41.     }while(i < n);
  42.    
  43.     i = 0;
  44.     nodeT* prev = head;
  45.     nodeT* temp;
  46.     while(i < k){
  47.         curr = head;
  48.         prev = head;
  49.         while(curr->next != NULL && curr->next->data >= curr->data){
  50.             prev = curr;
  51.             curr = curr->next;
  52.         }
  53.         if(prev == head && curr == head){
  54.             temp = curr;
  55.             head = curr->next;
  56.             free(temp);
  57.         }
  58.         else{
  59.             temp = curr;
  60.             prev->next = curr->next;
  61.             free(temp);
  62.         }
  63.         i++;
  64.     }
  65.     printlist(head);
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment