CEG's Linux User Group

  • Increase font size
  • Default font size
  • Decrease font size
Home Labs LINEAR QUEUE IMPLEMENTATION USING LINKED LIST - Introduction
LINEAR QUEUE IMPLEMENTATION USING LINKED LIST

LINEAR QUEUE IMPLEMENTATION USING LINKED LIST - Introduction

E-mail Print
User Rating: / 6
PoorBest 
Article Index
LINEAR QUEUE IMPLEMENTATION USING LINKED LIST
Introduction
Source Code
Documentation
All Pages
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);
}
}
}


Last Updated on Friday, 12 June 2009 08:06  
Please register or login to add your comments to this article.