Quick actions

cmd+k|ctrl+k

Navigation

Languages

Linked List Class

Snippet info

Language

Cpp

Visibility

public

Author

dwynn

Created

2020-05-09T23:08:36Z

Updated

2020-05-12T15:14:14Z

#include <iostream>
using namespace std;



    struct item{
        int num;
        item* nxt;
    };
    
class LinkedList{
    
    private:
        
        item* head;
        item* tail;
    
    public:
  
        
        LinkedList(){
            head = NULL;
            tail = NULL;
        }
        
        void insert(int x){
            item *N = new item; //create item
            N->num = x; //assign the number
            N->nxt = NULL; //point it to nxt
            
            if(head == NULL) //nothing in the list
            {
                head = N;
                tail = N;
                return;
            }
            item* ptr = head;
            while(ptr->nxt)
                ptr = ptr->nxt;
            ptr->nxt = N;
            return;
        }
        
        void printList(){
            item* ptr = head;
            cout << endl;
            while(ptr){
                cout << ptr->num << "->";
                ptr = ptr->nxt;
            }
            cout << endl;
        }
        
        void reverse(){
            
            item * rev = head->nxt;
            item* R = rev->nxt;
            tail = head;
            head->nxt = NULL;
            while(rev)
            {
                rev->nxt = head;
                head = rev;
                
                rev = R;
                if(R)
                    R=R->nxt;
            }
            cout << "Reversed Below:" << endl;
            printList();
            
        }
  
        void deleteItem(int x){
            item* d = head;
            item* b = d->nxt;
            if(head->num == x)//if its at head;
            {
              head = head->nxt;
              delete d;
              return;
            }
            
            while(b->num != x)
            {
                d=d->nxt;
                b=b->nxt;
            }
            d->nxt = b->nxt;
            delete b;
            d = NULL;
            delete d;
            
            printList();
            return;
        }  
};

int main() {
    LinkedList B;
    B.insert(8);
    B.insert(7);
    B.insert(1);
    B.insert(56);
    B.insert(82);
    B.insert(71);
    B.printList();
    B.reverse();
    B.reverse();
    B.deleteItem(56);
    
    return 0;
}
INFO