# Category: Queues

## Program to implement MIN Priority Queue

Priority Queue Program to implement MIN Priority Queue #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 10 struct queue {int front,rear; int arr[MAX]; }; void push(struct queue *q,int x) { int f,r,i; if(q->front==-1) {q->arr=x; q->front=q->rear=0; } else { f=q->front; r=q->rear; while(f<=r && q->arr[f]<x) f++; for(i=r;i>=f;i–) q->arr[i+1]=q->arr[i]; q->arr[f]=x; q->rear++; } } void display(struct queue *q) { […]

## Program to implement MAX Priority Queue

Priority Queues Program to implement MAX Priority Queue #include <stdio.h> #include <stdlib.h> #include <conio.h> #define MAX 5 void display(struct queue *q); struct queue {int front,rear; int arr[MAX]; }; void push(struct queue *q,int arr[],int n) { int i=0,j,f,r; for(i=0;i<n;i++) {if(q->front==-1) {q->arr=arr[i]; q->front=q->rear=0; } else {f=q->front; r=q->rear; while(f<=r && q->arr[f]>arr[i]) f++; for(j=r+1;j>=f;j–) q->arr[j+1]=q->arr[j]; q->arr[f] = arr[i]; q->rear++; […]

## Program to implement Dequeue (Double Ended Queues) using Arrays with front always at zero

Double Ended Queues (Dequeue) Program to implement Dequeue (Double Ended Queues) using Arrays with front always at zero /*Implementation of De-queue using arrays*/ #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 10 typedef struct dequeue {int front,rear; int arr[MAX]; }dq; /*If flag is zero, insertion is done at beginning else if flag is one, insertion […]

## Program to implement Linear Queues using Linked list using global front and rear pointers

Queues Program to implement Linear Queues using Linked list using global front and rear pointers /*Implementation of Linear Queues using Linked List using global front and rear pointers*/ #include <stdio.h> #include <conio.h> #include <stdlib.h> typedef struct queue {int info; struct queue *next; }queue; queue *front=NULL,*rear=NULL; queue *create() {queue *temp=(queue *)malloc(sizeof(queue)); if(temp==NULL) {printf(“Memory Allocation Error!”); exit(1); […]

## Program to implement Linear Queues using Linked List

Queues Program to implement Linear Queues using Linked List /*Implementation of Linear Queues using Linked List*/ #include <stdio.h> #include <conio.h> #include <stdlib.h> typedef struct queue {int info; struct queue *next; }queue; queue *create() {queue *temp=(queue *)malloc(sizeof(queue)); if(temp==NULL) {printf(“Memory Allocation Error!”); exit(1); } return temp; } queue *makenode(int x) {queue *temp=create(); temp->info=x; temp->next=NULL; return temp; } […]

## Program to implement a Queue using Array by incrementing front as well as rear

Queues Program to implement a Queue using Array by incrementing front as well as rear /*Implementation of Linear queues using arrays*/ /*Queue implementation by shifting front as well as rear*/ #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 4 typedef struct queue {int front, rear; int arr[MAX]; }queue; /*Enqueue will increment rear by one and […]

## Program to implement a Queue using Array with front always at zero

Queues Program to implement a Queue using Array with front always at zero /*Implementation of queues using arrays*/ /*Queue implementation with front always at zero*/ #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAX 10 typedef struct queue {int front, rear; int arr[MAX]; }queue; /*Enqueue will increment rear by one and add new element at this […]

## Queues

Queues Introduction Representation Operations Implementation Simple queue With front always at zero Linked queue Dequeue Priority Queues Max Priority Min Priority Queues A queue is a FIFO structure – First In First Out.  A queue is a data structure in which insertion of a new element is done at the rear end and deletion of […]