online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include<stdio.h> #include<stdlib.h> typedef struct BinarySearchTree { struct BinarySearchTree * left; struct BinarySearchTree * right; int val; } bst; typedef struct Queue { bst * val; struct Queue * next; } qu; void enqueu(qu ** , bst * ); bst * dequeu(qu ** ); int isempty(qu * ); bst * create(bst * , int); void inorder(bst * ); void preorder(bst * ); void postorder(bst * ); void levelorder(bst * ); void mirimg(bst * ); int main() { bst * root = NULL; int g, ch; while (1) { printf("\n\n 1) Insert\n 2) Preorder traversal\n 3) Inorder traversal\n 4) Postorder traversal\n 5) Level Order Traversal\n 6) Construct Mirror Image of the tree\n 7) Exit"); printf("\n\n Enter your choice : "); scanf("%d", & ch); switch (ch) { case 1: printf("\nInsert value for the tree: "); scanf("%d", & g); root = create(root, g); break; case 2: printf("\nValues in Preorder Traversal :"); preorder(root); break; case 3: printf("\nValues in Inorder Traversal : "); inorder(root); break; case 4: printf("\nValues in Postorder Traversal :"); postorder(root); break; case 5: printf("\nValues in Level order Traversal :"); levelorder(root); break; case 6: printf("\nMirror Image of the tree constructed , perform any traversal to check the mirror image...... "); mirimg(root); break; case 7: exit(0); } } } bst * create(bst * root, int p) { bst * temp, * pre, * ptr; temp = (bst * ) malloc(sizeof(bst)); temp -> val = p; temp -> right = temp -> left = NULL; if (root == NULL) { root = temp; } else { ptr = root; while (ptr != NULL) { pre = ptr; if (ptr -> val > p) ptr = ptr -> left; else ptr = ptr -> right; } if (pre -> val > p) pre -> left = temp; else pre -> right = temp; } return root; } void preorder(bst * root) { if (root != NULL) { printf("%d,", root -> val); preorder(root -> left); preorder(root -> right); } } void inorder(bst * root) { if (root != NULL) { inorder(root -> left); printf("%d,", root -> val); inorder(root -> right); } } void postorder(bst * root) { if (root != NULL) { postorder(root -> left); postorder(root -> right); printf("%d,", root -> val); } } void levelorder(bst * root) { qu * p = NULL; bst * ptr; enqueu( & p, root); while (!isempty(p)) { ptr = dequeu( & p); printf("%d,", ptr -> val); if (ptr -> left != NULL) enqueu( & p, ptr -> left); if (ptr -> right != NULL) enqueu( & p, ptr -> right); } } void mirimg(bst * root) { qu * p = NULL; bst * ptr, * temp; enqueu( & p, root); while (!isempty(p)) { ptr = dequeu( & p); if (ptr -> left != NULL) enqueu( & p, ptr -> left); if (ptr -> right != NULL) enqueu( & p, ptr -> right); temp = ptr -> right; ptr -> right = ptr -> left; ptr -> left = temp; } } void enqueu(qu ** p, bst * ptr1) { qu * temp, * ptr; temp = (qu * ) malloc(sizeof(qu)); temp -> val = ptr1; temp -> next = NULL; if ( * p == NULL) * p = temp; else { ptr = * p; while (ptr -> next != NULL) ptr = ptr -> next; ptr -> next = temp; } } bst * dequeu(qu ** p) { bst * ptr; ptr = ( * p) -> val; * p = ( * p) -> next; return ptr; } int isempty(qu * p) { if (p == NULL) return 1; else return 0; }

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