Mukund Gohil's

BLOGSPOT

OOPC Linked List

OOPC Linked List Using Stacks Code :

#include<iostream>
//using namespace std;
class node
{
public :
    int d; //data
    node *p; // contains the address of the next node
};
class linked
{
public :
    node *start;
public :
    linked()
    {
        start=NULL;
    }
    void insert_at_beg();
    void insert_at_mid();
    void insert_at_end();
    int remove();
    void display();
};
void linked :: insert_at_end()
{
    node *temp;
    if(start==NULL)
    {
        start=new node [1];
        start->p=NULL;
        cout<<"\n Enter Data to insert \n";
        cin>>start->d;
    }
    else
    {
        temp=start;                                       
        while(temp->p!=NULL)
            temp=temp->p;
        temp->p= new node [1];
        temp=temp->p;
        cout<<"\n Enter Data to insert \n";
        cin>>temp->d;
        temp->p=NULL;
    }
}
void linked :: insert_at_mid()
{
    node *temp,*next;
    int x;
    temp=start;
    cout<<"\n Enter the Neighbour element \n";
    cin>>x;
    while(temp->d!=x)
        temp=temp->p;
    next=temp->p;
    temp->p=new node [1];
    temp=temp->p;
    temp->p=next;
    cout<<"\n Enter data to insert \n";
    cin>>temp->d;
}
void linked :: insert_at_beg()
{
    node *temp;
    temp=new node [1];
    temp->p=start;
    start=temp;
    cout<<"\n Enter element to insert \n";
    cin>>temp->d;
}
int linked :: remove()
{
    node *temp,*prev;
    int x;
    if(start==NULL)
    {
        cout<<"\n Underflow -- No element to Delete \n";
        return 0;
    }
    cout<<"\n Enter element to delete \n";
    cin>>x;
    if(start->d==x && start->p==NULL)
    {
        delete start;
        start=NULL;
        cout<<"\n Deletion successfull \n";
        return 0;
    }
    if(start->d==x)
    {
        temp=start->p;
        delete start;
        start=temp;
        cout<<"\n Deletion Successfull \n";
        return 0;
    }
    temp=start;
    while(temp->d!=x)
    {
        prev=temp;
        temp=temp->p;
    }
    prev->p=temp->p;
    cout<<"\n Deletion Successfull \n";
    return x;
}
void linked :: display()
{
    node *temp;
    temp=start;
    cout<<"\n Linked List elements are \n";
    while(temp->p!=NULL)
    {
        cout<<""<<temp->d<<" ";
        temp=temp->p;
    }
    cout<<temp->d<<endl;
}
int main()
{
    int n=0,a;
    linked l;
    do
    {
        cout<<"\n ************** M E N U **************\n";
        cout<<"\n1.Insert at beginning\n2.Insert at middle\n3.Insert at end\n4.Delete\n5.Display elements";
        cout<<"\n6.Exit\n";
        cout<<"Enter option \n";
        cin>>a;
        switch(a)
        {
        case 1:
            l.insert_at_beg();
            break;
        case 2:
            l.insert_at_mid();
            break;
        case 3:
            l.insert_at_end();
            break;
        case 4:
            l.remove();
            break;
        case 5:
            l.display();
            break;
        case 6:
            n=1;
            break;
        default :
            cout<<"\n Invalid Entry \n";
            break;
        }
    }while(n!=1);
    return 0;
}
Next PostNewer Post Previous PostOlder Post Home