Hi, I have the following code which compiles fine but does not produce any output..
using namespace std;
#include<iostream>
#include<cstdio>
#include<conio.h>
struct node
{
int data;
struct node *link;
};
void append(struct node *,int);
void addatbeg(struct node *,int);
void addafter(struct node *,int,int);
void display(struct node *);
int count(struct node *);
void Delete(struct node *,int);
int main(void)
{
struct node *p;
p=NULL;
cout<<"No of elements in the linked list:"<<count(p);
append(p,14);
append(p,30);
append(p,25);
append(p,42);
append(p,17);
display(p);
addatbeg(p,999);
addatbeg(p,888);
addatbeg(p,777);
display(p);
addafter(p,7,0);
addafter(p,2,1);
addafter(p,5,99);
display(p);
cout<<"\nNo of elements in the linked list:"<<count(p);
Delete(p,99);
Delete(p,1);
Delete(p,10);
display(p);
cout<<"\nNo of elements in the linked list:"<<count(p);
cin.get();
getch();
return 0;
}
void append(struct node *q,int num)
{
struct node *temp,*r;
if(q==NULL)
{
temp= new struct node;
temp->data=num;
temp->link=NULL;
q=temp;
}
else
{
temp=q;
while(temp->link!=NULL)
temp=temp->link;
r= new struct node;;
r->data=num;
r->link=NULL;
temp->link=r;
}
}
void addatbeg(struct node *q,int num)
{
struct node *temp;
temp= new struct node;;
temp->data=num;
temp->link=q;
q=temp;
}
void addafter(struct node *q,int loc,int num)
{
struct node *temp,*r;
int i;
temp=q;
for(i=0;i<loc;i++)
{
temp=temp->link;
if(temp==NULL)
{
cout<<"\nThere are less than"<<loc<<"elements in the list";
return;
}
}
r= new struct node;;
r->data=num;
r->link=temp->link;
temp->link=r;
}
void display(struct node *q)
{
cout<<"\n";
while(q!=NULL)
{
cout<<q->data;
q=q->link;
}
}
int count(struct node *q)
{
int c=0;
while(q!=NULL)
{
q=q->link;
c++;
}
return c;
}
void Delete(struct node *q,int num)
{
struct node *old,*temp;
temp=q;
while(temp!=NULL)
{
if(temp->data==num)
{
if(temp==q)
q=temp->link;
else
old->link=temp->link;
delete temp;
return;
}
else
{
old=temp;
temp=temp->link;
}
}
cout<<"\nElement"<<num<<"not found";
}
Please help me out!!!