These are the 4 functions include KiostreamP using namespace
Solution
//EXAMPLE PROGRAM FOR SINGLE LINKED LIST
# include <iostream.h>
# include <conio.h>
# include <stdlib.h>
struct node
{
int number;
node *next;
};
class singlelist
{
node *first,*prev,*temp,*curr;
public:
singlelist()
{
first=NULL;
}
void create()
{
cout<<\"Stop by -999\"<<endl;
temp=new node;
cout<<\"Enter the numbers \";
cin>>temp->number;
while(temp->number!=-999)
{
temp->next=NULL;
if(first==NULL)
{
first=temp;
prev=first;
}
else
{
prev->next=temp;
prev=temp;
}
temp=new node;
cin>>temp->number;
} //end of while
}
void deletenode()
{
int num;
cout<<\"\ Enter the number to delete \";
cin>>num;
if(first->number==num)
{
first=first->next;
return;
}
else
{
prev=first;
curr=first->next;
while(curr->next!=NULL)
{
if(curr->number==num)
{
prev->next=curr->next;
return;
}
prev=curr;
curr=curr->next;
}
}
if(curr->number==num)
{
prev->next=NULL;
return;
}
cout<<\"\ No such number\";
}
void insertbefore()
{
int nu;
temp=new node;
cout<<\"\ Enter the number \";
cin>>temp->number;
cout<<\"\ before the number \";
cin>>nu;
temp->next=NULL;
prev=first;
curr=first;
/* if(first==NULL) //if the list is empty then we can insert in this way
{
first=temp;
return;
}*/
if(curr->number==nu)
{
temp->next=first;
first=temp;
return;
}
else
{
prev=curr;
curr=curr->next;
while(curr->next!=NULL)
{
if(curr->number==nu)
{
prev->next=temp;
temp->next=curr;
return;
}
prev=curr;
curr=curr->next;
}
}
if(curr->number==nu)
{
prev->next=temp;
temp->next=curr;
return;
}
cout<<\"\ No such number \";
}
void insertafter()
{
int nu;
temp=new node;
cout<<\"\ Enter the number \";
cin>>temp->number;
cout<<\"\ After the number \";
cin>>nu;
temp->next=NULL;
prev=first;
curr=first;
/* if(first==NULL) //if the list is empty then we can insert in this way
{
first=temp;
return;
}*/
if(curr->number==nu)
{
temp->next=first->next;
first->next=temp;
return;
}
else
{
prev=curr;
curr=curr->next;
while(curr->next!=NULL)
{
if(curr->number==nu)
{
temp->next=curr->next;
curr->next=temp;
return;
}
prev=curr;
curr=curr->next;
}
}
if(curr->number==nu)
{
curr->next=temp;
temp->next=NULL;
return;
}
cout<<\"\ No such number \";
}
void print()
{
cout<<\" The list is \"<<endl;
cout<<\" ----------- \"<<endl;
temp=first;
while(temp!=NULL)
{
cout<<temp->number<<\"-->\";
temp=temp->next;
}
cout<<\"Nil\"<<endl;
getch();
}
};
void main()
{
int ch=0;
singlelist s;
clrscr();
cout<<\" Linked List creation \ \";
s.create();
clrscr();
while(ch!=5)
{
clrscr();
cout<<\"\ 1.Insert Before\";
cout<<\"\ 2.Insert After\";
cout<<\"\ 3.Delete \";
cout<<\"\ 4.Print \";
cout<<\"\ 5.Exit \";
cout<<\"\ Enter your choice \";
cin>>ch;
switch(ch)
{
case 1:
s.insertbefore();
s.print();
break;
case 2:
s.insertafter();
s.print();
break;
case 3:
s.deletenode();
s.print();
break;
case 4:
s.print();
break;
case 5:
s.print();
exit(1);
}
}
getch();
}



