#include <stdio.h>
struct queue{
int data;
struct queue* next;
};
typedef struct queue* node;
node front=NULL,rear=NULL;
/* declaration of function */
void display();
void enqueue(node);
int dequeue();
void enqueue(node x)
{
if(front==NULL)//for inserting first element
{
rear=x;
front=x;
rear->next=NULL;//IMP
}
else//general case
{
rear->next=x;
rear=x;
rear->next=NULL;
}
}
int dequeue()
{
int x;
if(front==NULL)//if empty
{
printf("Empty queue\n");
return;
}
else//if not empty
{
node temp=front;
x=temp->data;
front=front->next;
free(temp);
}
if(front==NULL)//if deleted the last element
{
rear=NULL;
}
return x;
}
void display()
{
if(front==NULL)
{
printf("Queue Empty\n");
return;
}
node temp=front;
printf("Queue is:-\n");
while(temp!=NULL)
{
printf("%d\n",temp->data);
temp=temp->next;
}
}
int main()
{
int ch;
printf("1.Enqueue\n2.Dequeue\n3.Display\n4.Exit\n");
scanf("%d",&ch);
node temp;
int x;
while(ch!=4)
{
switch(ch)
{
case 1:
temp=(struct queue*)malloc(sizeof(struct queue));
printf("Enter data:");
scanf("%d",&(*temp).data);
enqueue(temp);
break;
case 2:
x=dequeue();
printf("Removed %d\n",x);
break;
case 3:
display();
break;
default:printf("WRONG CHOICE ENTER AGAIN\n");
}
printf("1.Enqueue\n2.Dequeue\n3.Display\n4.Exit\n");
scanf("%d",&ch);
}
}
This blog will cover all important aspects of 'C' 'C++', 'Data Structures in C' and other Technical stuffs. In this blog you will find good C Interview Questions Answers. I will be posting both multiple choice and subjective type C interview questions and answers. Tutorials will be posted from time to time that will focus on problem solving.
Sunday, October 2, 2011
Data Structure C program Queue using Linked List Dev c++
Labels:
data structures
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment