Advertisement
Guest User

Untitled

a guest
May 25th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. struct node
  4. {
  5.     int data;
  6.     struct node* next;
  7.    
  8. };
  9. typedef struct node Node;
  10.  
  11. Node *createlist(int *arr,int len)
  12. {
  13.     int i;
  14.     Node *first,*current,*previous;
  15.     for(i=0;i<len;i++)
  16.     {
  17.         current=new Node;
  18.         current->data=arr[i];
  19.         if(i==0)
  20.         {
  21.             first=current;
  22.         }
  23.         else
  24.         {
  25.             previous->next=current;
  26.         }
  27.         current->next=NULL;
  28.         previous=current;
  29.        
  30.     }
  31.     return first;
  32.    
  33. }
  34. void printlist(Node* first)
  35. {
  36.     Node *node=first;
  37.     if(first==NULL)
  38.     {
  39.         cout<<"List is empty"<<endl;
  40.     }
  41.     else
  42.     {
  43.         while(node!=NULL)
  44.         {
  45.             cout<<node->data<<" ";
  46.             node=node->next;
  47.            
  48.         }
  49.         cout<<endl;
  50.     }
  51.    
  52. }
  53.  
  54.  
  55. Node *insert(Node* first,int data)
  56. {
  57.     Node *current,*previous;
  58.     Node *newnode;
  59.    
  60.     newnode=new Node;
  61.     newnode->data=data;
  62.     newnode->next=NULL;
  63.    
  64.     current=first->next;
  65.     previous=first;
  66.    
  67.     while(newnode->next==NULL)
  68.     {
  69.         if(newnode->data > previous->data && newnode->data < current->data)
  70.         {
  71.             newnode->next=current;
  72.             previous->next=newnode;
  73.            
  74.             cout<<"if"<<endl;
  75.            
  76.             previous=current;
  77.             current=current->next;
  78.            
  79.         }
  80.        
  81.         else
  82.         {
  83.             previous=current;
  84.             current=current->next;
  85.            
  86.             cout<<"else"<<endl;
  87.         }
  88.        
  89.     }
  90.     return first;
  91.    
  92. }
  93.  
  94. void freelist(Node *first)
  95. {
  96.     Node *ptr,*tmp;
  97.     ptr=first;
  98.     while(ptr!=NULL)
  99.     {
  100.         tmp=ptr;
  101.         ptr=ptr->next;
  102.         delete tmp;
  103.     }
  104. }
  105.  
  106.  
  107.  
  108. int main()
  109. {
  110.     Node *first;
  111.     int arr[]={14,27,32,46};
  112.     first=createlist(arr,4);
  113.     printlist(first);
  114.    
  115.     int data=36;
  116.     first=insert(first,data);
  117.     printlist(first);
  118.    
  119.     freelist(first);
  120.    
  121.     return 0;
  122.    
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement