0% found this document useful (0 votes)
1 views

assignment queue

Uploaded by

csaiml23094
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views

assignment queue

Uploaded by

csaiml23094
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

#include <stdio.

h>

#define MAX_SIZE 100

Struct Queue {

Int queue[MAX_SIZE];

Int front;

Int rear;

};

Void initializeQueue(struct Queue *q) {

q->front = -1;

q->rear = -1;

Int isEmpty(struct Queue *q) {

Return (q->front == -1);

Int isFull(struct Queue *q) {

Return (q->rear == MAX_SIZE – 1);

Void enqueue(struct Queue *q, int data) {

If (isFull(q)) {

Printf(“Queue is full\n”);

Return;

If (isEmpty(q)) {

q->front = 0;

q->rear++;

q->queue[q->rear] = data;

printf(“Enqueued %d in queue\n”, data);


}

Int dequeue(struct Queue *q) {

If (isEmpty(q)) {

Printf(“Queue is empty\n”);

Return -1;

Int data = q->queue[q->front];

// If the queue is empty reset the pointers

If (q->front == q->rear) {

q->front = -1;

q->rear = -1;

} else {

q->front++;

Printf(“Deleted element: %d\n”, data);

Return data;

Void display(struct Queue *q) {

If (isEmpty(q)) {

Printf(“Queue is empty\n”);

Return;

For (int I = q->front; I <= q->rear; i++) {

Printf(“%d “, q->queue[i]);

Printf(“\n”);

Int main() {
Struct Queue q;

initializeQueue(&q);

enqueue(&q, 1);

enqueue(&q, 2);

enqueue(&q, 3);

printf(“Elements in the queue after enqueue operation: “);

display(&q);

dequeue(&q);

printf(“Elements in the queue after dequeue operation: “);

display(&q);

return 0;

}
#include <limits.h>

#include <stdio.h>

#include <stdlib.h>

Typedef struct Node {

Int data;

Struct Node* next;

} Node;

Node* createNode(int new_data)

Node* new_node = (Node*)malloc(sizeof(Node));

New_node->data = new_data;

New_node->next = NULL;

Return new_node;

Typedef struct Queue {

Node *front, *rear;

} Queue;

Queue* createQueue()

Queue* q = (Queue*)malloc(sizeof(Queue));

q->front = q->rear = NULL;

return q;

}
Int isEmpty(Queue* q)

If (q->front == NULL && q->rear == NULL) {

Return 1;

Return 0;

Void enqueue(Queue* q, int new_data)

Node* new_node = createNode(new_data);

If (q->rear == NULL) {

q->front = q->rear = new_node;

return;

q->rear->next = new_node;

q->rear = new_node;

Void dequeue(Queue* q)

If (isEmpty(q)) {

Printf(“Queue Underflow\n”);

Return;

}
Node* temp = q->front;

q->front = q->front->next;

If (q->front == NULL)

q->rear = NULL;

Free(temp);

Int getFront(Queue* q)

If (isEmpty(q)) {

Printf(“Queue is empty\n”);

Return INT_MIN;

Return q->front->data;

Int getRear(Queue* q)

If (isEmpty(q)) {

Printf(“Queue is empty\n”);

Return INT_MIN;

Return q->rear->data;

Int main()
{

Queue* q = createQueue();

Enqueue(q, 10);

Enqueue(q, 20);

Printf(“Queue Front: %d\n”, getFront(q));

Printf(“Queue Rear: %d\n”, getRear(q));

Dequeue(q);

Dequeue(q);

Enqueue(q, 30);

Enqueue(q, 40);

Enqueue(q, 50);

Dequeue(q);

Printf(“Queue Front: %d\n”, getFront(q));

Printf(“Queue Rear: %d\n”, getRear(q));

Return 0;

You might also like