-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathint_avl_test.c
More file actions
41 lines (30 loc) · 1.03 KB
/
Copy pathint_avl_test.c
File metadata and controls
41 lines (30 loc) · 1.03 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
/* Code below for integer AVL tree */
#include "avl.c"
#include <stdio.h>
#include <stdlib.h>
void
int_print(Node *p_Node) {
printf("(%d:%d)",*(int *)(p_Node->p_key),*(int *)(p_Node->p_data));
}
int
int_comparator(void *p_k1, void *p_k2) {
int k1 = * (int *)p_k1;
int k2 = * (int *)p_k2;
if (k1 > k2) return 1;
if (k1 < k2) return -1;
return 0;
}
int main(void) {
int i_a_data[][2] = { {9, 3}, {7, 2}, {8, 9}, {5, 2}, {4, 10}, {6, 23}, {1, 39}, {2, -3}, {-3, 23}};
Node * p_Node_root = NULL;
int size = sizeof(i_a_data)/sizeof(i_a_data[0]);
while (--size >= 0)
insert_avl(&p_Node_root, (void *) &i_a_data[size][0], (void *) &i_a_data[size][1], &int_comparator);
print_tree(p_Node_root, 0, &int_print);
delete_avl(&p_Node_root, &i_a_data[4][0], &int_comparator);
delete_avl(&p_Node_root, &i_a_data[2][0], &int_comparator);
delete_avl(&p_Node_root, &i_a_data[6][0], &int_comparator);
print_tree(p_Node_root, 0, &int_print);
//printf("%d",*(int *)find(p_Node_root, &i_a_data[4], &int_comparator)->p_key);
return 0;
}