Tree Traversal Program
Tree Traversal Program
#include <stdio.h>
#include <stdlib.h>
struct node {
int data;
};
void create();
void create() {
int data;
if (newnode == NULL) {
return;
scanf("%d", &data);
newnode->data = data;
newnode->left = NULL;
newnode->right = NULL;
if (root == NULL) {
root = newnode;
} else {
insert(root, newnode);
char ch;
printf("Do you want to add as left child (l) or right child (r)? ");
scanf("%c", &ch);
switch (ch) {
case 'l':
case 'L':
if (root->left == NULL) {
root->left = newnode;
} else {
insert(root->left, newnode);
break;
case 'r':
case 'R':
if (root->right == NULL) {
root->right = newnode;
} else {
insert(root->right, newnode);
}
break;
default:
free(newnode);
if (root != NULL) {
inorder(root->left);
inorder(root->right);
if (root != NULL) {
preorder(root->left);
preorder(root->right);
if (root != NULL) {
postorder(root->left);
postorder(root->right);
}
int main() {
int choice;
while (1) {
scanf("%d", &choice);
switch (choice) {
case 1:
create();
break;
case 2:
inorder(root);
printf("\n");
break;
case 3:
preorder(root);
printf("\n");
break;
case 4:
postorder(root);
printf("\n");
break;
case 5:
exit(0);
default:
printf("Invalid choice.\n");
return 0;