can anyone tell how to make delete function for my program.......and how can i insert more than one value .....ie whenever i insert a value ........the program inserts and then exits.....Thanks in advance!!!!

#include<iostream>

using namespace std;

class linkedlist
{
  private:
  struct node
  {
    int info;
    node *next;
  }*head;
  public:

  linkedlist()
  {
      head=NULL;
  }

  void append();
  void addatbeg();
  void addafter();
  void display();
  int count();
//  ~linkedlist();
};


void linkedlist::append()
{ int num;
cout<<"Enter info::";
cin>>num;
node *s,*temp;

if(head=NULL)
{
    temp=new node;
    temp->info=num;
    temp->next=NULL;
}
else
{
    temp=head;
    while(temp->next!=NULL)
    temp=temp->next;

    s=new node;
    s->info=num;
    s->next=NULL;
    temp->next=s;
}
}


void linkedlist::addatbeg()
{
    int num;
    cout<<"Enter info::";
    cin>>num;
    node* temp=new node;
    temp->info=num;
    temp->next=head;
    head=temp;

}

void linkedlist::addafter()
{
    int num, num1;
    cout<<"Enter data after which value::";
    cin>>num1;
    cout<<"Enter data::";
    cin>>num;
    int count=0;
    node *s,*temp;
    s=head;
    while(s->info!=num1)
    {
        s=s->next;
        count++;
    }

    temp=new node;
    temp->info=num;
    temp->next=s->next;
    s->next=temp;

}

void linkedlist::display()
{
    node *temp=head;
    cout<<endl;
    while(temp!=NULL)
    {
        cout<<temp->info<<" ";
        temp=temp->next;

    }
}

int linkedlist::count()
{
    node *s=head;
    int c=0;
    while(s)
    {
        s=s->next;
        c++;
    }
    return c;
}

int main()
{
   int ans;
    cout<<"!!!!!!!!!!!!!!MeNU!!!!!!!!!!!!"<<endl;
    cout<<"1.Add at baginning \n2.Add at last\n3.Add after some element\n4.Display\n5.Count\n6.Exit\n";
    cin>>ans;
    linkedlist l;
    switch(ans)
    {
        case 1: l.addatbeg();
                break;
        case 2:l.append();
                break;
        case 3:l.addafter();
                break;
        case 4:l.display();
                break;
        case 5:cout<<l.count()<<endl;
                break;
        case 6:return 0;
    }
}

Recommended Answers

All 2 Replies

Check out the Loops section in this tutorial. Surround your switch case with one!

Member Avatar for thendrluca

may be some memory leaks
but in general is something like this :)

#include<iostream>
using namespace std;

class linkedlist {
private:
    struct node {
        int info;
        node *next;
    } *head, *tail;
public:
    linkedlist() {
        head = tail = NULL;
    }
    ~linkedlist() {
        node* s;
        while (head) {
            s = head;
            head = head->next;
            delete s;
        }
        head = tail = NULL;
    }
    void append(int);
    void addatbeg(int);
    void addafter(int, int);
    void display();
    int count();
};

void linkedlist::append(int num) {
    node* temp = new node;
    temp->info = num;
    temp->next = NULL;

    if (tail) {
        tail->next = temp;
    } else {
        head = temp;
    }
    tail = temp;
}

void linkedlist::addatbeg(int num) {
    node* temp = new node;
    temp->info = num;
    temp->next = NULL;

    if (head) {
        temp->next = head;
    } else {
        tail = temp;
    }
    head = temp;
}

void linkedlist::addafter(int num, int num1) {
    node *s;
    node *temp = new node;
    temp->info = num;
    temp->next = NULL;

    if (tail) {
        s = head;
        while(s->info != num1) {
            s = s->next;
        }

        temp->next = s->next;
        s->next = temp;
    } else {
        head = tail = temp;
    }
}

void linkedlist::display() {
    node *s = head;
    cout << endl;
    while (s) {
        cout << s->info << " ";
        s = s->next;
    }
    cout << endl;
}

int linkedlist::count() {
    node *s = head;
    int count = 0;

    while(s) {
        s = s->next;
        count++;
    }
    return count;
}

int main()
{
    int ans, n, num, num1;
    linkedlist l;

    do {
        system("cls"); // only in windows platforms
        cout << "!!!!!!!!!!!!!MENU!!!!!!!!!!!!" << endl;
        cout << "1.Add at beginning" << endl;
        cout << "2.Add at last" << endl;
        cout << "3.Add after some element" << endl;
        cout << "4.Display" << endl;
        cout << "5.Count" << endl;
        cout << "6.Exit" << endl;
        cin >> ans;

        switch (ans) {
        case 1 :
        case 2 :
            cout << "How many want to add: "; cin >> n;
            break;
        case 3 : 
            cout << "add number : "; cin >> num;
            cout << "after number: "; cin >> num1;
            l.addafter(num, num1);
            break;
        case 4 : l.display(); break;
        case 5 : cout << endl << l.count() << endl; break;
        case 6 : return 0;
        }

        switch (ans) {
        case 1 :
        case 2 :
            for (int i = 0; i < n; i++) {
                cout << "number " << i+1 << ": "; cin >> num;
                switch(ans) {
                    case 1: l.addatbeg(num);
                    break;
                    case 2: l.append(num);
                    break;
                }
            }
            break;
        }
        system("pause"); // windows platform only
    } while (1);
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.