Create queue_using_linked_list.c
parent
1cc547fd8b
commit
60cdbc1f5e
|
@ -0,0 +1,93 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
struct node *enqueue(struct node*);
|
||||
struct node *dequeue(struct node*);
|
||||
void display(struct node*);
|
||||
void peek(struct node*);
|
||||
struct node{
|
||||
int data;
|
||||
struct node *next;
|
||||
};
|
||||
|
||||
int main(){
|
||||
struct node *front=0,*rear=0;
|
||||
int choice;
|
||||
printf("Press 1 for Enqueue\nPress 2 for Dequeue\nPress 3 for Display\nPress 4 for Peek\nPress 5 for Exit\n");
|
||||
do{
|
||||
printf("\nEnter the choice: ");
|
||||
scanf("%d",&choice);
|
||||
switch(choice){
|
||||
case 1: rear=enqueue(rear);
|
||||
if(front==0){
|
||||
front=rear;
|
||||
}
|
||||
break;
|
||||
|
||||
case 2: if(front==0 && rear==0){
|
||||
printf("Queue is Empty");
|
||||
break;
|
||||
}
|
||||
else{
|
||||
front=dequeue(front);
|
||||
if(front==0){
|
||||
rear=0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 3: if(front==0){
|
||||
printf("Queue is Empty");
|
||||
break;
|
||||
}
|
||||
else{
|
||||
display(front);
|
||||
break;
|
||||
}
|
||||
|
||||
case 4: if(front==0){
|
||||
printf("Queue is Empty");
|
||||
break;
|
||||
}
|
||||
else{
|
||||
peek(front);
|
||||
break;
|
||||
}
|
||||
|
||||
case 5: break;
|
||||
default: printf("Invalid Choice");
|
||||
}
|
||||
}while(choice!=5);
|
||||
}
|
||||
struct node *enqueue(struct node *rear){
|
||||
struct node *newnode;
|
||||
newnode=(struct node*)malloc(sizeof(struct node));
|
||||
printf("Enter the data: ");
|
||||
scanf("%d",&newnode->data);
|
||||
newnode->next=0;
|
||||
if(rear==0){
|
||||
rear=newnode;
|
||||
}
|
||||
else{
|
||||
rear->next=newnode;
|
||||
rear=newnode;
|
||||
return rear;
|
||||
}
|
||||
}
|
||||
struct node *dequeue(struct node *front){
|
||||
struct node*temp=front;
|
||||
printf("The enqueued element is %d",front->data);
|
||||
front=front->next;
|
||||
free(temp);
|
||||
return front;
|
||||
}
|
||||
void display(struct node *front){
|
||||
struct node *temp=front;
|
||||
printf("The elements in the queue are: ");
|
||||
while(temp!=0){
|
||||
printf("%d ",temp->data);
|
||||
temp=temp->next;
|
||||
}
|
||||
}
|
||||
void peek(struct node *front){
|
||||
printf("The Peek element is %d",front->data);
|
||||
}
|
Loading…
Reference in New Issue