C++ Program to implement Linked List
#include <iostream.h>
#include <conio.h>
struct node
{
node* ptr;
int data;
};
class list
{
node* lastptr;
public:
list();
~list();
void add(int);
void remove(int);
void display();
node* searchnode(int);
void releasenode();
};
list::list()
{
lastptr='\0';
}
list::~list()
{
while (lastptr)
{
node* thisptr=lastptr;
lastptr=lastptr->ptr;
delete thisptr;
}
}
void list::add(int value)
{
node* thisptr=new(node);
thisptr->data=value;
thisptr->ptr=lastptr;
lastptr=thisptr;
}
node* list::searchnode(int value)
{
node* thisptr=lastptr;
while (thisptr)
{
if (thisptr->data==value)
break;
thisptr=thisptr->ptr;
}
return thisptr;
}
void list::remove(int value)
{
node* thisptr=searchnode(value);
if (!thisptr) return;
while (thisptr->ptr)
{
node* pptr=thisptr->ptr;
thisptr->data=pptr->data;
thisptr=thisptr->ptr;
}
releasenode();
}
void list::releasenode()
{
node* thisptr=lastptr;
node* previousptr;
while (thisptr->ptr)
{
previousptr=thisptr;
thisptr=thisptr->ptr;
}
if (thisptr==lastptr) lastptr='\0';
else previousptr->ptr='\0';
delete thisptr;
}
void list::display()
{
node* thisptr=lastptr;
//Loop until this pointer equal to NULL.
while (thisptr)
{
cout<<"Data : "<<thisptr->data<<"\n";
cout<<"Address : "<<thisptr->ptr<<"\n";
thisptr=thisptr->ptr;
}
}
void main()
{
list linklist;
//add number(1 until 7) into link list.
linklist.add(1);
linklist.add(2);
linklist.add(3);
linklist.add(4);
linklist.add(5);
linklist.add(6);
linklist.add(7);
getch();
//remove number 4 from the list.
linklist.remove(4);
//display the number in descending order.
linklist.display();
cout<<endl;
cout<<"Press any key to continue"<<endl;
getch();
}
Related Posts : C++ Programs
0 comments:
Post a Comment