#include<stdio.h> #include<stdlib.h> int *queue , *front, *rear, min, curr; void create(void); void insert(int); void delete(void); void traverse(void); void main() { int ch , ele, status ; printf(“Enter minimum capacity of Queue : “); scanf(“%d”, &min); create(); while(1) { printf(“1.Insert \n”); printf(“2.Delete \n”); printf(“3.Traverse \n”); printf(“4.Quit \n”); printf(“Enter choice : “); scanf(“%d”, &ch); if(ch==1) { printf(“Enter element : “); scanf(“%d”, &ele); } switch(ch) { case 1 : insert(ele); break ; case 2 : delete(); break ; case 3 : traverse(); break ; case 4 : exit(1); default: printf(“Invalid choice\n\n”); } } } void create(void) { queue = (int*)calloc(min, sizeof(int)); if(queue != NULL) { front = rear = queue; curr = min; printf(“Queue is Ready \n”); } else { printf(“Out of memory….\n\n”); } } void insert(int ele) { if(rear == front+curr) { curr++; queue = (int*)realloc(queue, curr*sizeof(int)); *rear = ele ; rear++ ; printf(“Element inserted into Queue\n\n”); } else { *rear = ele; rear++ ; printf(“Element inserted into Queue\n\n”); } } void delete(void) { if(front==rear) printf(“Queue is empty\n”); else { int* i; printf(“Deleted : %d\n”, *front); for(i=front ; i<rear-1 ; i++) { *i = *(i+1); } rear– ; if(curr > min) { curr–; queue = (int*)realloc(queue, curr*sizeof(int)); } } } void traverse(void) { if(front == rear) printf(“Queue is underflow\n\n”); else { int *i ; printf(“Stack elements :\n”); for(i=front ; i<rear ; i++) { printf(“%d\n”,*i); } } } |