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

assignment queue

Uploaded by

csaiml23094
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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
We take content rights seriously. If you suspect this is your content, claim it here.
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