Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <malloc.h>
- #define R return
- struct node { int data; struct node* left; struct node* right; };
- struct node* insert(struct node* tree, int val)
- {
- if (tree == NULL) {
- tree = (struct node*) malloc(sizeof(struct node));
- tree->left = NULL;
- tree->right = NULL;
- tree->data = val;
- } else {
- if (val < tree->data) {
- printf("INSIDE L\n");
- tree->left = insert(tree->left, val);
- } else {
- printf("INSIDE R\n");
- tree->right = insert(tree->right, val);
- }
- }
- R tree;
- }
- struct node* create(struct node* tree)
- {
- int val;
- printf("Enter value to insert: ");
- scanf("%d", &val);
- while (val != -1) {
- tree = insert(tree, val);
- printf("Enter value to be inserted: ");
- scanf("%d", &val);
- }
- R tree;
- }
- void inOrder(struct node* tree)
- {
- if (tree == NULL) {
- R;
- } else {
- inOrder(tree->left);
- printf("%d\n", tree->data);
- inOrder(tree->right);
- }
- }
- void preOrder(struct node* tree)
- {
- if (tree == NULL) {
- R;
- } else {
- printf("%d\n", tree->data);
- preOrder(tree->left);
- preOrder(tree->right);
- }
- }
- void postOrder(struct node* tree)
- {
- if (tree == NULL) {
- R;
- } else {
- postOrder(tree->left);
- postOrder(tree->right);
- printf("%d\n", tree->data);
- }
- }
- int main() {
- struct node* tree;
- tree = create(tree);
- inOrder(tree);
- printf("\n");
- preOrder(tree);
- printf("\n");
- postOrder(tree);
- R 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement