Untitled

 avatar
gulamsakaria2025
plain_text
2 months ago
3.1 kB
2
Indexable
#include<bits/stdc++.h> 
 using namespace std ; 
   class node {
    public :  
     int val ;  
     node* next  ;  
     node(int val){
        this->val = val ; 
        this->next =  NULL ;  
     }
   }; 
   void print_linklist(node* &head){
    node* tmp = head ; 
     while(tmp != NULL){
        cout << tmp->val << " "; 
        tmp = tmp->next ;  
     }
     cout << "NULL" << endl ;  
   }
    void input_node(node* &head, node* &tail){
         int  a ;  
          cin >> a ; 
           for ( int i = 0 ; i < a ; i++){
            int val ; 
             cin >> val ;  
             node* newnode = new node(val); 

              if (head == NULL){
                head = newnode ;  
                tail = newnode ;  
                
              }
               tail->next =  newnode ;  
               tail = tail->next ;  

             
           }
    }

     void input_head (node* &head){
        
            int val ; 
            cin >> val ;
            node* newnode = new node(val); 
            newnode->next = head ; 
            head = newnode ;  
        
     }
      void input_tail(node* &head, node* &tail){
        int val ;  
        cin >> val ; 
        node* newnode = new node(val);  
        if (head == NULL){
            head = newnode ; 
            tail = newnode ;  
            return ; 
        }
         tail->next = newnode ;  
         tail = tail->next ;  

        
      }

       void input_any_pos(node* &head){
        int val , idx ;  
         cin >> val >> idx ;

         node* newnode = new node(val);  
          node* tmp = head ;  

          for ( int  i = 1 ; i < idx ; i++){
             tmp = tmp->next ;  

          }
           newnode->next =  tmp->next ;  
           tmp->next = newnode ;  
       }

       void delete_head(node* &head){
        node* deletenode = head ;  
        head = head->next ; 
        delete deletenode ;  
         
         
       }

        void delete_any_pos ( node* &head ){
             int idx ; 
             cin  >> idx ; 
             
              node* tmp = head ; 
               for  ( int i = 1 ; i < idx ; i++){
                 tmp = tmp->next ;
               }
               node* deletenode = tmp->next ;  
               tmp->next = tmp->next->next ; 
                delete deletenode ; 

        }

      int main (){
         node* head = NULL ; 
          node* tail  = NULL ;
          input_node(head, tail);
           cout << "Input Head : " ;
           input_head(head);
           print_linklist(head);
           cout  << "Input tail : " ;
           input_tail(head , tail);
           print_linklist(head);
           cout<< "Input Index & val : ";
           input_any_pos(head);
           print_linklist(head);
            cout << "Delete head : ";  
           delete_head(head);
           print_linklist(head);
            cout << "Input  Index number for delete : "; 
           delete_any_pos(head);
           print_linklist(head);
      }
Editor is loading...
Leave a Comment