Guest User

Untitled

a guest
Jan 21st, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | None | 0 0
  1.  
  2. #include<iostream>
  3. using namespace std;
  4.  
  5. class node {
  6.   public :
  7.     int data;
  8.     node * next;
  9.     node(int data){
  10.         this -> data = data;
  11.         next = NULL;
  12.     }
  13.        
  14. };
  15.  
  16. void insertHead(node* &head, int data){
  17.     node * n = new node(data);
  18.     n -> next = head;
  19.     head = n;
  20. }
  21.  
  22. void insert(node * &head, int data){
  23.     node * n = new node(data);
  24.     node * temp = head;
  25.     while(temp -> next != NULL){
  26.         temp = temp -> next;
  27.     }
  28.     temp->next = n;
  29.     n -> next = NULL;
  30.    
  31. }
  32.  
  33. void print(node * &head){
  34.    
  35.     node * temp = head;
  36.     while(temp != NULL){
  37.         cout<<temp->data<<" ";
  38.         temp = temp -> next;
  39.     }
  40.    
  41. }
  42.  
  43. //Insertion Sort
  44.  
  45.  
  46. void sorted(node* & head2, node * current  ){
  47.     node * temp;
  48.     if(head2 == NULL || head2->data > current->data){
  49.         current->next = head2;
  50.         head2 = current;
  51.        
  52.     }
  53.     else{
  54.         temp = head2;
  55.         while(temp->next != NULL && temp->next->data < current->data){
  56.             temp = temp->next;
  57.         }
  58.         current->next = temp->next;
  59.         temp->next = current;
  60.     }
  61. }
  62.  
  63. void insertionSort(node* & head){
  64.     node * current = head;
  65.     node * new_head = NULL;
  66.     while( current!= NULL ){
  67.        // node * n = current->next;
  68.      
  69.         sorted(new_head, current);
  70.         current =  current->next;
  71.        
  72.     }
  73.     head = new_head;
  74.    
  75. }
  76.  
  77.  
  78.  
  79.  
  80. int main(){
  81.    
  82.     int t;
  83.    
  84.         int n;
  85.         cin>>n;
  86.         int a;
  87.         node *head1 = NULL;
  88.        
  89.         for(int i = 0; i < n; i++){
  90.              cin>>a;
  91.             if(i == 0)
  92.                 insertHead(head1, a);
  93.             else
  94.                 insert(head1, a);
  95.         }
  96.        
  97.         insertionSort(head1);
  98.               print(head1);
  99.        
  100.     return 0;
  101.    
  102. }
Add Comment
Please, Sign In to add comment