online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
#include <stdlib.h> #include <stdio.h> struct btNode { int data; struct btNode *right; struct btNode *left; }; // CHANGE HERE: remove globals struct btNode* create(int); // CHANGE HERE: signature change struct btNode* insert(struct btNode*, int); // CHANGE HERE: signature change void postorder(struct btNode *); int main() { int choice, item; // CHANGE HERE: assign root to NULL struct btNode* root = NULL; do { printf("\nChoose one of the options:\n"); printf("1. Insert 2. Delete 3. Inorder 4. Postorder 5. Preorder 6. Exit\n"); scanf("%d", &choice); switch (choice) { case 1: printf("\nEnter any number to insert:"); scanf("%d", &item); root = insert(root, item); break; case 4: postorder(root); break; case 6: break; default: printf("\nWRONG INPUT"); } } while (choice != 6); return 0; } // CHANGE HERE: return the pointer from function struct btNode* create(int num) { struct btNode* temp1 = (struct btNode *)malloc(sizeof(struct btNode)); temp1->data = num; temp1->left = NULL; temp1->right = NULL; return temp1; } struct btNode* insert(struct btNode* root, int num) { // CHANGE HERE: store returned pointer struct btNode* temp1 = create(num); if (root == NULL) { root = temp1; printf("%d inserted\n", root->data); } else { // CHANGE HERE: see the while loop struct btNode* temp2 = root; while (temp2 != NULL) { //printf("inside while"); if (temp2->data >= num) { // CHANGE HERE if (temp2->left) temp2 = temp2->left; else { temp2->left = temp1; printf("%d inserted\n", temp2->left->data); break; } } else { // CHANGE HERE if (temp2->right) temp2 = temp2->right; else { temp2->right = temp1; printf("%d inserted\n", temp2->right->data); break; } } } // CHANGE HERE: commented these two lines // temp2 = temp1; // printf("%d inserted\n", temp2->data); } return root; } void postorder(struct btNode *r) { // CHANGE HERE: replaced root with r if (r == NULL) { //printf("Tree is empty"); return; } else { postorder(r->left); postorder(r->right); printf("%d ", r->data); } }

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