#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#include <cstdlib>
struct Data
{
int data;
Data *Next,*Prev;
};
class List
{
public:
Data *Head,*Tail;
public:
List():Head(NULL),Tail(NULL){};
~List(); //Destructor
void DisplayList(void);
void Add(int _data);
};
using namespace std;
int main(){
List lst;
int menu_state = 0;
do
{
system("cls");
cout<<"1.Add element to the list"<<endl;
cout<<"2.Display List"<<endl;
cout<<"3.Delete List and exit"<<endl;
cin>>menu_state;
switch (menu_state)
{
case 1:
system("cls");
int data;
cout<<"Enter numbet: ";
cin>>data;
lst.Add(data);
cout<<"Number was added.."<<endl;
system("pause");
menu_state = 4;
break;
case 2:
system("cls");
lst.DisplayList();
system("pause");
menu_state = 4;
break;
default:
break;
}
} while (menu_state != 3);
lst.~List(); //for test
system("pause");
return 0;
}
void List::Add(int _data)
{
Data *temp=new Data;
temp->Next=NULL;
temp->data = _data;
if (Head!=NULL)
{
temp->Prev=Tail;
Tail->Next=temp;
Tail=temp;
}
else
{
temp->Prev=NULL;
Head=Tail=temp;
}
}
void List::DisplayList()
{
Data *temp = Head;
while (temp)
{
cout<<"--------------------------------"<<endl;
cout<<"Data = "<<temp->data<<endl;
cout<<"--------------------------------"<<endl;
temp = temp->Next;
}
}
List::~List()
{
Data *temp = Head;
while (Head)
{
Tail=Head->Next;
delete Head;
Head=Tail;
}
cout<<"List was deleted.."<<endl;
}
Comments
Leave a comment