online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include<stdio.h> #include<stdlib.h> #define MAX 10 //declaration of Double Ended Circular Queue Array Structure typedef struct DoubleEndedQueueArray{ int arr[MAX]; int rear,front; }DEQueue; //function declarations void insert_via_front(DEQueue*); void insert_via_rear(DEQueue*); void delete_via_front(DEQueue*); void delete_via_rear(DEQueue*); void display(DEQueue*); void initialize(DEQueue*); //starting of the main function int main(){ DEQueue* dq = (DEQueue*)malloc(sizeof(DEQueue)); //creating a pointer variable of the doubly circular Queue structure int a; do{ printf("\n What do you want to do with the Queue?\n"); printf("\n 0:Initialize \n 1:Insert Through Front \n 2:Insert Through Rear \n 3:Delete Through Front \n 4:Delete Through Rear \n 5:Display \n 6:Exit \n"); scanf("%d",&a); switch(a){ case 0: initialize(dq);break; case 1: insert_via_front(dq);break; case 2: insert_via_rear(dq);break; case 3: delete_via_front(dq);break; case 4: delete_via_rear(dq);break; case 5: display(dq);break; case 6: exit(0); default: printf("Wrong Input!Try again:\n"); } }while(1); //infinite loop for menu return 0; } //Initialize function for eliminating the garbage values from the queue array void initialize(DEQueue* dq){ int i; for(i=0;i<MAX;i++){ dq->arr[i]=0; } dq->rear=dq->front=-1; } //Insert [through rear] integer data into queue void insert_via_rear(DEQueue* dq){ if((dq->front==0&&dq->rear==MAX-1)||(dq->rear==dq->front-1)){ printf("DEQueue is overflowed,can't insert."); } else{ if(dq->front==-1&&dq->rear==-1) dq->front=dq->rear=0; else if(dq->rear==MAX-1) dq->rear=0; //rear moves circular way else dq->rear++; printf("Enter data:\n"); scanf("%d",&dq->arr[dq->rear]); } } //Delete [through front] data from queue void delete_via_front(DEQueue* dq){ if(dq->front==-1){ printf("Queue underflow,nothing to delete."); } else{ printf("Deleted:%d",dq->arr[dq->front]); if(dq->front==MAX-1) dq->front=0; //front moves circular way else if(dq->front==dq->rear) dq->front=dq->rear=-1; else dq->front++; } } //Insert [through front] integer data into queue void insert_via_front(DEQueue* dq){ if((dq->front==0&&dq->rear==MAX-1)||(dq->rear==dq->front-1)){ printf("DEQueue is overflowed,can't insert."); } else{ if(dq->front==-1&&dq->rear==-1) dq->front=dq->rear=0; else if(dq->front==0) dq->front=MAX-1; //front moves circular way else dq->front--; printf("Enter data:\n"); scanf("%d",&dq->arr[dq->front]); } } //Delete [through rear] data from queue void delete_via_rear(DEQueue* dq){ if(dq->rear==-1){ printf("Queue underflow,nothing to delete."); } else{ printf("Deleted:%d",dq->arr[dq->rear]); if(dq->rear==0) dq->rear=MAX-1; //front moves circular way else if(dq->front==dq->rear) dq->front=dq->rear=-1; else dq->rear--; } } //Display the values of the queue void display(DEQueue* dq){ if(dq->front==-1) printf("Queue is empty,no items to be displayed."); else{ int i,j; printf("Queue elements are:\n"); if(dq->front<=dq->rear){ for(i=dq->front;i<=dq->rear;i++){ printf("%d\t",dq->arr[i]); } } else{ for(i=dq->front;i<MAX;i++){ printf("%d\t",dq->arr[i]); } for(j=0;j<=dq->rear;j++){ printf("%d\t",dq->arr[j]); } } } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue