Header File: Link List
Header File: Link List
Header file
/*
===========================
Author: Krunal Soni
Purpose: To explain the concept node pointer
===========================
All rights reserved by KSONI
*/
#include <iostream>
#include <stdlib.h>
using namespace std;
/*
=======================
Master Class
=======================
*/
class llist{
public:
llist();
bool addmember();
bool deletemember();
bool displaylist();
bool resetptr();
bool deletelist();
private:
/*
=======================
Slave Class
=======================
*/
class node{
public:
int member;
node *next;
node(){
member=0;
next=NULL;
}
~node(){
};
};
/*
=======================
end of Slave Class
=======================
*/
node *nodeptr,*writeptr,*readptr,*prevptr;
};
/*
=======================
end of Master Class
=======================
*/
Function description file:
/*
===========================
Author: Krunal Soni
Purpose: To explain the concept node pointer
===========================
All rights reserved by KSONI
*/
#include "llist.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
/*
=======================
Function definations
=======================
*/
llist::llist(){
nodeptr=NULL;
}
/*
=======================
function is to reset pointers to beginging of the list
=======================
*/
bool llist::resetptr(){
writeptr=nodeptr;
readptr=nodeptr;
prevptr=nodeptr;
return true;
}
/*
=======================
function is to add node in the list
=======================
*/
bool llist::addmember(){
cout<<"please enter the number"<<endl;
if(!nodeptr){
nodeptr=new node();
resetptr();
cin>>writeptr->member;
}
else{
writeptr->next=new node();
writeptr=writeptr->next;
cin>>writeptr->member;
}
return true;
}
/*
=======================
function is to display the list
=======================
*/
bool llist::displaylist(){
resetptr();
cout<<"Start-->";
if(readptr)
while(readptr){
cout<<readptr->member<<"-->";
readptr=readptr->next;
}
cout<<"End"<<endl;
return true;
}
/*
=======================
function is to delete specific node in the list
=======================
*/
bool llist::deletemember(){
cout<<"enter the number which you wanna delete"<<endl;
int scanval;
cin>>scanval;
cout<<"[List before delete]"<<endl;
displaylist();
resetptr();
/*
=======================
to delete first node in the list
=======================
*/
if(prevptr->member==scanval){
readptr=readptr->next;
delete prevptr;
nodeptr=prevptr=readptr;
}
/*
=======================
to delete anyother node in the list
=======================
*/
else{
while(readptr->next){
prevptr=readptr;
readptr=readptr->next;
if(readptr->member==scanval){
prevptr->next=readptr->next;
delete readptr;
readptr=prevptr;
}
}
}
cout<<"[List after delete]"<<endl;
displaylist();
return true;
}
/*
=======================
function is to delete complete list
=======================
*/
bool llist::deletelist(){
resetptr();
while(readptr){
prevptr=readptr;
readptr=readptr->next;
delete prevptr;
}
nodeptr=NULL;
return true;
}
Application file:
/*
===========================
Author: Krunal Soni
Purpose: To explain the concept node pointer
===========================
All rights reserved by KSONI
*/
#include "llist.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
/*
=======================
Driver function
=======================
*/