Repository navigation
Expand file tree
/
Copy pathBinary_Trees.c
More file actions
108 lines (90 loc) · 1.59 KB
/
Copy pathBinary_Trees.c
File metadata and controls
108 lines (90 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include<stdlib.h>
#include<stdio.h>
struct bin_tree {
int data;
struct bin_tree * right, *left;
};
typedef struct bin_tree node;
void insert(node ** tree, int val)
{
node *temp = NULL;
if (!(*tree))
{
temp = (node *)malloc(sizeof(node));
temp->left = temp->right = NULL;
temp->data = val;
*tree = temp;
return;
}
if (val < (*tree)->data)
{
insert(&(*tree)->left, val);
}
else if (val >(*tree)->data)
{
insert(&(*tree)->right, val);
}
}
// Part of the homework start //
// O(n)
void print_preorder(node* node)
{
if (node == NULL)
return;
printf("%d\n", node->data);
print_preorder(node->left);
print_preorder(node->right);
}
// O(n)
void print_inorder(node* node)
{
if (node == NULL)
return;
print_inorder(node->left);
printf("%d\n", node->data);
print_inorder(node->right);
}
// O(n)
void print_postorder(node* node)
{
if (node == NULL)
return;
print_postorder(node->left);
print_postorder(node->right);
printf("%d\n", node->data);
}
// Part of the homework end //
void deltree(node * tree)
{
if (tree)
{
deltree(tree->left);
deltree(tree->right);
free(tree);
}
}
void main()
{
node *root;
node *tmp;
//int i;
root = NULL;
/* Inserting nodes into tree */
insert(&root, 9);
insert(&root, 4);
insert(&root, 15);
insert(&root, 6);
insert(&root, 12);
insert(&root, 17);
insert(&root, 2);
/* Printing nodes of tree */
printf("Pre Order Display\n");
print_preorder(root);
printf("In Order Display\n");
print_inorder(root);
printf("Post Order Display\n");
print_postorder(root);
/* Deleting all nodes of tree */
deltree(root);
getchar();
}