| Article Index |
|---|
| LINEAR QUEUE IMPLEMENTATION USING LINKED LIST |
| Introduction |
| Source Code |
| Documentation |
| All Pages |
Page 2 of 4
Source code:#include"stdio.h"
#include"stdlib.h"
struct listnode
{
int element;
struct listnode *next;
};
typedef struct listnode *node;
typedef node list;
node ne,temp,prev,end;
list createlist()
{
list header;
header=malloc(sizeof(struct listnode));
header->next=NULL;
return header;
}
int isempty(list header)
{
return header->next==NULL;
}
list enqueue(list header,int e)
{
ne=malloc(sizeof(struct listnode));
ne->element=e;
if(isempty(header))
{
ne->next=NULL;
header->next=ne;
end=ne;
}
else
{
ne->next=NULL;
end->next=ne;
end=ne;
}
return header;
}
list dequeue(list header)
{
if(isempty(header))
{
printf("underflow\n");
return NULL;
}
else
{
header->next=(header->next)->next;
}
return header;
}
int frontanddelete(list header)
{
int e;
if(isempty(header))
{
printf("underflow\n");
return 0;
}
else
{
e=(header->next)->element;
dequeue(header);
return e;
}
}
int front(list header)
{
if(isempty(header))
{
printf("underflow\n");
return 0;
}
else
{
return (header->next)->element;
}
}
void search(list header,int e)
{
int i;
if(isempty(header))
{
printf("underflow\n");
}
else
{
i=1;
temp=header->next;
while(temp!=NULL&&temp->element!=e)
{
i++;
temp=temp->next;
}
if(temp==NULL)
printf("no such element is present in the list\n");
else
{
printf("element is present in %dth position\n",i);
}
}
}
void display(list header)
{
temp=header->next;
while(temp!=NULL)
{
printf("%d\n",temp->element);
temp=temp->next;
}
printf("\n");
}
int main()
{
int e,s;
list header;
header=createlist();
while(1)
{
printf("\n1-enqueue\n2-dequeue\n3-frontanddelete\n4-front\n5-search\n6-display\n7-exit\n");
scanf("%d",&s);
switch(s)
{
case 1:
printf("element=");
scanf("%d",&e);
enqueue(header,e);
break;
case 2:
dequeue(header);
break;
case 3:
printf("frontanddelete=%d\n",frontanddelete(header));
break;
case 4:
printf("front=%d\n",front(header));
break;
case 5:
printf("element=");
scanf("%d",&e);
search(header,e);
break;
case 6:
printf("The elements in the queue\n");
display(header);
break;
default:
exit(0);
}
}
}
| < Prev | Next > |
|---|




