view src/btree_mem_test.c @ 18:ef2c6a831fb9

Btree taking shape. Insert seems to be working
author Eris Caffee <discordia@eldalin.com>
date Wed, 17 Oct 2012 02:17:47 -0500
parents 36561a63330a
children 0bf94d0ed0b0
line source
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
5 #include "btree_mem.h"
7 int
8 cmp(void * a, void * b)
9 {
10 return strcmp(a, b);
11 }
14 void
15 print_data(int depth, void * key, void * data)
16 {
17 for (int i = 0; i < depth; i++)
18 printf("\t");
19 printf("%d %s\n", *((int*)key), (char *) data);
20 }
22 void
23 print_tree(struct btree_mem * bt)
24 {
25 printf("==================================\n");
26 btree_mem_walk_inorder(bt, print_data);
27 printf("==================================\n");
28 }
30 int
31 main(int argc, char ** argv)
32 {
33 #define MINDEGREE 3
34 struct btree_mem * bt = btree_mem_new(MINDEGREE, cmp);
35 if (NULL == bt)
36 {
37 fprintf(stderr, "Unable to create new btree_mem\n");
38 exit(EXIT_FAILURE);
39 }
41 #define MAXKEYS 20
42 int keys[MAXKEYS] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
43 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 };
44 char * data[MAXKEYS] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
45 "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
47 for (int i = 0; i < MAXKEYS; i++)
48 {
49 print_tree(bt);
50 if (NULL == btree_mem_insert(bt, keys+i, data[i]))
51 {
52 fprintf(stderr, "btree_mem_insert failed\n");
53 exit(EXIT_FAILURE);
54 }
55 }
56 print_tree(bt);
58 exit(EXIT_SUCCESS);
59 }