Saturday 20 October 2012

Implementation of circular Queue using Linked list in C


Most precise program ever....!!!!!!!

#include<stdio.h>
#include<conio.h>
#define pf printf
typedef struct node
{
int info;
struct node *next;
}n;
void show(n **f)
{
n *t;
if(*f==0)
pf("Empty");
else
for(t=*f;t!=0;pf("%d\t",t->info),t=t->next);
getch();
}
void insert(n **r,n **f)
{
n *t;
t=(n*)malloc(sizeof(n));
pf("Enter no: ");
scanf("%d",&t->info);
t->next=0;
if(*f==0 && *r==0)
*f=*r=t;
else
(*r)=(*r)->next=t;
}
void del(n **r,n **f)
{
n *t;
if(*r==0 && *f==0)
{
pf("Empty");
getch();
}
else if(*r==*f)
{
*f=*r=0;
free(*f); free(*r);
}
else
{
t=*f;
(*f)=(*f)->next;
free(t);
}
}
void main()
{
int ch;
n *front=0,*rear=0;
while(1)
{
clrscr();
pf("1.Insert \n2. Delete \n3. Show");
pf("\n4. Exit \nEnter your choice: ");
scanf("%d",&ch);
switch(ch)
{
case 1: insert(&rear,&front); break;
case 2: del(&rear,&front); break;
case 3: show(&front); break;
case 4: exit(0); break;
default: pf("\n\n\n\tWrong choice..");
}
}
}

No comments: