Esempio n. 1
0
int main(int argc,char* argv[])
{
	int i=0;
	BTree* tree=BTree_Create();
	BTreeNode n1={'A',NULL,NULL};
	BTreeNode n2={'B',NULL,NULL};
	BTreeNode n3={'C',NULL,NULL};
	BTreeNode n4={'D',NULL,NULL};
	BTreeNode n5={'E',NULL,NULL};
	BTreeNode n6={'F',NULL,NULL};

	BTree_Insert(tree,&n1,0x0,0,0);
	BTree_Insert(tree,&n2,0x0,1,0);
	BTree_Insert(tree,&n3,0x1,1,0);
	BTree_Insert(tree,&n4,0x00,2,0);
	BTree_Insert(tree,&n5,0x2,2,0);
	BTree_Insert(tree,&n6,0x2,3,0);


	printf("The Height of Tree: %d \n",BTree_Height(tree));

	BTree_Display(tree,printf_data,4,'-');

	//BTreeNode* node=((BTreeHeader*)tree)->root; 
	printf("\nPreOrder_traversal:\n");
	preOrder_traversal(((BTreeHeader*)tree)->root);

	printf("\nMidOrder_traversal:\n");
	midOrder_traversal(((BTreeHeader*)tree)->root);

	printf("\nPostOrder_traversal:\n");
	postOrder_traversal(((BTreeHeader*)tree)->root);
	return 0;
}
Esempio n. 2
0
int main(int argc, char *argv[])
{
    BTree* tree = BTree_Create();
    BTreeNode* current = NULL;
    BTreeNode* p = NULL;
    SeqList* list = NULL;
    int i = 0;
    
    struct Node n1 = {{NULL, NULL}, 'A'};
    struct Node n2 = {{NULL, NULL}, 'B'};
    struct Node n3 = {{NULL, NULL}, 'C'};
    struct Node n4 = {{NULL, NULL}, 'D'};
    struct Node n5 = {{NULL, NULL}, 'E'};
    struct Node n6 = {{NULL, NULL}, 'F'};
    
    BTree_Insert(tree, (BTreeNode*)&n1, 0, 0, 0);
    BTree_Insert(tree, (BTreeNode*)&n2, 0x00, 1, 0);
    BTree_Insert(tree, (BTreeNode*)&n3, 0x01, 1, 0);
    BTree_Insert(tree, (BTreeNode*)&n4, 0x00, 2, 0);
    BTree_Insert(tree, (BTreeNode*)&n5, 0x02, 2, 0);
    BTree_Insert(tree, (BTreeNode*)&n6, 0x02, 3, 0);
    
    printf("Full Tree: \n");
    
    BTree_Display(tree, printf_data, 4, '-');
    
    printf("Thread via List:\n");
    
    list = SeqList_Create(BTree_Count(tree));
    
    thread_via_list(BTree_Root(tree), list);
    
    for(i=0; i<SeqList_Length(list); i++)
    {
        printf("%c, ", ((struct Node*)SeqList_Get(list, i))->v);
    }
    
    printf("\n");
    
    printf("Thread via Left:\n");
    
    current = BTree_Root(tree);
    
    thread_via_left(current, &p);
    
    while( current != NULL )
    {
        printf("%c, ", ((struct Node*)current)->v);
        
        current = current->left;
    }
    
    printf("\n");
    
    BTree_Destroy(tree);
    
	return 0;
}