Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define Q_size 5
- typedef struct{
- int data[Q_size+1];
- int head, tail;
- }queue;
- //display along with maximum element display
- void display(queue *q)
- {
- int max = q->data[q->head];
- int i = q->head;
- do
- {
- /*if(q->tail == i){
- printf("Queue is empty\n");
- }
- else{
- i = (i+1) % (Q_size+1);
- }*/
- if(q->data[i] > max)
- {
- max = q->data[i];
- }
- i = (i+1) % (Q_size+1);
- } while(i != q->tail);
- printf("\n\n%d\n", max);
- }
- //enqueue
- void enqueue(queue *q, int item)
- {
- if((q->tail+1)%(Q_size+1) == q->head){
- printf("Queue is full\n");
- return;
- }
- q->data[q->tail] = item;
- q->tail = (q->tail+1)%(Q_size+1);
- }
- //dequeue
- int dequeue(queue *q)
- {
- int item;
- if(q->tail == q->head){
- printf("Queue is empty\n");
- return -1;
- }
- item = q->data[q->head];
- q->head = (q->head+1) % (Q_size+1);
- return item;
- }
- int main()
- {
- queue my_q;
- int item;
- my_q.head = 0;
- my_q.tail = 0;
- //First enqueue 3 numbers
- enqueue(&my_q, 1);
- printf("Tail = %d\n", my_q.tail);
- enqueue(&my_q, 2);
- printf("Tail = %d\n", my_q.tail);
- enqueue(&my_q, 3);
- printf("Tail = %d\n", my_q.tail);
- //dequeue 2 numbers
- printf("Beginning head = %d\n", my_q.head);
- item = dequeue(&my_q);
- printf("item = %d, head=%d\n", item, my_q.head);
- item = dequeue(&my_q);
- printf("item = %d, head=%d\n", item, my_q.head);
- // enqueue 3 numbers
- enqueue(&my_q, 4);
- printf("Tail = %d\n", my_q.tail);
- enqueue(&my_q, 5);
- printf("Tail = %d\n", my_q.tail);
- enqueue(&my_q, 6);
- printf("Tail = %d\n", my_q.tail);
- enqueue(&my_q, 7);
- printf("Tail = %d\n", my_q.tail);
- item = dequeue(&my_q);
- display(&my_q);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement