0% found this document useful (0 votes)
12 views3 pages

Queue

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views3 pages

Queue

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

#include printf("The queue Node* newNode =

<stdio.h>#include is empty!\n"); (Node*)malloc(sizeof(N


<stdlib.h> return; } ode));
#define MAX 5 printf("Queue: "); if (!newNode) {
typedef struct { int for (int i = q->front; i printf("Memory
items[MAX]; <= q->rear; i++) allocation error\n");
int front, rear; printf("%d ", q- return; }
} Queue; >items[i]); newNode->data =
void initialize(Queue printf("\n");} val;
*q) { int main() { newNode->next =
q->front = -1; Queue q; NULL;
q->rear = -1;} initialize(&q); if (q->rear == NULL)
int isEmpty(Queue *q) enqueue(&q, 10); {
{ enqueue(&q, 20); q->front = q-
return (q->front == - enqueue(&q, 30); >rear = newNode;
1);} printQueue(&q); return;}
int isFull(Queue *q) { printf("Dequeued: q->rear->next =
return (q->rear == %d\n", dequeue(&q)); newNode;
MAX - 1);} printQueue(&q); q->rear =
void enqueue(Queue enqueue(&q, 40); newNode;}
*q, int value) { enqueue(&q, 50); void dequeue(Queue*
if (isFull(q)) { enqueue(&q, 60); q) {
printf("Error: printQueue(&q); if (isEmpty(q)) {
Queue is full!\n"); return 0;} printf("Queue is
return; } )))))Linked list))))))))00 empty, cannot
if (isEmpty(q)) #include <stdio.h> dequeue\n");
q->front = 0; #include <stdlib.h> return;}
q->rear++; typedef struct Node { Node* temp = q-
q->items[q->rear] = int data; >front;
value; struct Node* next; q->front = q->front-
printf("%d added to } Node; >next;
the queue.\n", value);} typedef struct Queue { if (q->front ==
int dequeue(Queue *q) Node* front; NULL)
{ Node* rear; q->rear = NULL;
if (isEmpty(q)) { } Queue; free(temp);}
printf("Error: Queue* createQueue() int front(Queue* q) {
Queue is empty!\n"); { if (isEmpty(q)) {
return -1; } Queue* q = printf("Queue is
int value = q- (Queue*)malloc(sizeof( empty\n");
>items[q->front]; Queue)); return -1; }
if (q->front == q- q->front = q->rear = return q->front-
>rear) { NULL; >data;}
initialize(q); return q;} void display(Queue* q)
} else { int isEmpty(Queue* q) {
q->front++; } { if (isEmpty(q)) {
return value;} return (q->front == printf("Queue is
void printQueue(Queue NULL);} empty\n");
*q) { void enqueue(Queue* return; }
if (isEmpty(q)) { q, int val) { Node* temp = q-
>front;
printf("Queue return q;} return q->arr[q-
elements:"); int isEmpty(Queue* q) >front];}
while (temp) { { int peek(Queue* q) {
printf("%d -> ", return (q->front == - if (isEmpty(q)) {
temp->data); 1);} printf("Queue is
temp = temp- int isFull(Queue* q) { empty\n");
>next; } return ((q->rear + 1) return -1; }
printf("NULL\n");} % MAX_SIZE == q- return q->arr[q-
void freeQueue(Queue* >front);} >front];}
q) { void enqueue(Queue* void display(Queue* q)
Node* temp; q, int value) { {
while (q->front) { if (isFull(q)) { if (isEmpty(q)) {
temp = q->front; printf("Queue is printf("Queue is
q->front = q- full, cannot enqueue\ empty\n");
>front->next; n"); return;}
free(temp); } return; } printf("Queue
free(q);} if (q->front == -1) { elements:");
int main() { q->front = 0; } int i = q->front;
Queue* q = q->rear = (q->rear + while (i != q->rear) {
createQueue(); 1) % MAX_SIZE; printf("%d -> ", q-
enqueue(q, 10); q->arr[q->rear] = >arr[i]);
enqueue(q, 20); value; i = (i + 1) %
enqueue(q, 30); printf("%d enqueued MAX_SIZE; }
display(q); to queue\n", value);} printf("%d\n", q-
printf("Front void dequeue(Queue* >arr[q->rear]);
element: %d\n", q) { }
front(q)); if (isEmpty(q)) { void freeQueue(Queue*
dequeue(q); printf("Queue is q) {
display(q); empty, cannot free(q);
printf("Front element dequeue\n"); }
after dequeue: %d\n", return; } int main() {
front(q)); int dequeuedValue = Queue* q =
freeQueue(q); q->arr[q->front]; createQueue();
return 0;} if (q->front == q- enqueue(q, 10);
circular queue >rear) { enqueue(q, 20);
#include <stdio.h> q->front = q- enqueue(q, 30);
#include <stdlib.h> >rear = -1; enqueue(q, 40);
#define MAX_SIZE 5 } else { enqueue(q, 50);
typedef struct Queue { q->front = (q- display(q);
int arr[MAX_SIZE]; >front + 1) % dequeue(q);
int front; MAX_SIZE; } display(q);
int rear; printf("%d dequeued enqueue(q, 60);
} Queue; from queue\n", display(q);
Queue* createQueue() dequeuedValue);} printf("Front
{ int front(Queue* q) { element: %d\n",
Queue* q = if (isEmpty(q)) { front(q));
(Queue*)malloc(sizeof( printf("Queue is printf("Peek element:
Queue)); empty\n"); %d\n", peek(q));
q->front = q->rear = return -1; } freeQueue(q);
-1; return 0;

You might also like