tree3.c (1186B)
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #include "../lash_tree3.h" 5 #include "../lash_tree3_dump.h" 6 7 typedef struct treeitem { 8 char *something; 9 lash_tree_key_t val; 10 } treeitem; 11 12 typedef struct treeitem2 { 13 lash_tree_key_t val; 14 char *something; 15 } treeitem2; 16 17 // Simple push and pull test 18 19 int main() { 20 lash_tree_t *tree = NULL; 21 lash_tree_t *tree2 = NULL; 22 treeitem passitem; 23 treeitem2 passitem2; 24 void *resultitem; 25 26 char teststring[255]; 27 char teststring2[255]; 28 29 tree = lash_treeInit(tree, 10); 30 if (tree == NULL) 31 return 1; 32 33 tree2 = lash_treeInit(tree2, 10); 34 if (tree2 == NULL) 35 return 1; 36 37 lash_treeDumpInit(2); 38 lash_treeDumpAdd(tree2, "treetwo"); 39 lash_treeDumpAdd(tree, "treeone"); 40 41 sprintf(teststring, "one"); 42 sprintf(teststring2, "two"); 43 44 passitem.val = 20; 45 passitem.something = teststring2; 46 47 passitem2.val = 10; 48 passitem2.something = teststring; 49 50 lash_treePush(tree, &passitem2, NULL); 51 lash_treePush(tree, &passitem, &passitem.val); 52 53 lash_treeDump(NULL, "dump of both trees"); 54 55 lash_treeShift(tree, &resultitem); 56 57 lash_treeDump(tree, "dump of specified tree"); 58 59 lash_treeDumpFree(); 60 61 lash_treeFree(tree); 62 lash_treeFree(tree2); 63 64 return 0; 65 }