#ifndef INT_LINKED_LIST
#define INT_LINKED_LIST
class IntNode {
public:
int info;
IntNode *next;
IntNode(int el ,IntNode *ptr = 0){
info = el;
next =ptr;
}
};
class IntSLList{
public:
IntSLList(){
head = tail = 0;
}
~IntSLList();
int isEmpty(){
return head == 0;
}
void addToHead(int);
void addToTail(int);
int deleteFromHead();
int deleteFromTail();
void deleteNode(int);
void display();
bool isInList(int) const;
private:
IntNode *head ,*tail;
};
#endif
//////////////////////////////////////////////////////////////////////////////////////////
/*********intSLList.cpp***********/
#include
#include"intSLList.h"
using namespace std;
IntSLList::~IntSLList(){
for(IntNode *p; !isEmpty();){
p =head->next;
delete head;
head =p;
}
}
void IntSLList::addToHead(int el){
head = new IntNode(el,head);
if(tail==0)
tail= head;
}
void IntSLList::addToTail(int el){
//cout<<"addToTail"<<"\n";
if(tail !=0){
tail->next = new IntNode(el);
tail = tail->next;
}
else
head=tail = new IntNode(el);
}
int IntSLList::deleteFromHead(){
int el = head->info;
IntNode *tmp = head;
if(head==tail)
head=tail=0;
else
head = head->next;
delete tmp;
return el;
}
int IntSLList::deleteFromTail(){
int el =tail->info;
if(head==tail){
delete head;
head=tail=0;
}else{
IntNode *tmp ;
for(tmp=head ; tmp->next != tail ; tmp= tmp->next);
delete tail;
tail =tmp;for(tmp=head ; tmp->next != tail ; tmp= tmp->next)
tail->next= 0;
}
return el;
}
void IntSLList::display(){
IntNode *tmp ;
for(tmp=head ; tmp != 0 ; tmp= tmp->next)
cout<
}
int main()
{
IntSLList List ;
List.addToTail(82);
List.addToTail(5);
List.addToTail(78);
List.addToTail(78);
List.addToHead(33);
List.addToHead(44);
List.addToHead(53);
List.deleteFromHead();
List.deleteFromTail();
List.display();
return 0;
}
=================
g++ intSLList.cpp
./a.out
=================
OUTPUT
#################
44
33
82
5
78
#################