Beispiel #1
0
void stree()
{int count=0;
 int t,i,j;
system("reset");
printf("\nEnter the no of nodes");
scanf("%d",&i);
int arr[100];
node1 *root;
root=NULL;
printf("\nenter the elements of tree");
        for(j=0;j<i;j++)
         scanf("%d",&arr[j]);
        for(j=0;j<i;j++)
         inserttree(&root,arr[j],j+1);

do
{
printf("\n   **************************************************************************                     ");
printf("\nWhat u want to do");
printf("\n1 for Creation\n2 for Inorder traversal\n3 for Preorder traversal\n4 for Postorder traversal\n5 for Height\n0 to go back");
scanf("%d",&t);
switch(t)
{
 
 case 1:printf("\nEnter the no of nodes");
scanf("%d",&i);
root=NULL;

printf("\nenter the elements of tree");
        for(j=0;j<i;j++)
         scanf("%d",&arr[j]);
        for(j=0;j<i;j++)
         inserttree(&root,arr[j],j+1);
         break;
 case 2:
        inorder(root);
         break;
 case 3:
        preorder(root);
        break;
 case 4:
        postorder(root);
        break;
 case 5:
        j=height(root);
        printf("\nHeight of tree is%d",j);
        break;
  case 0:goto xy;
 defalut:
        printf("\n wrong choice entered");
        break;
}
printf("press 1 to continue with simple trees........");
scanf("%d",&t);
system("reset");
}while(t==1);
xy:;
}           
Beispiel #2
0
int main(int argc, const char * argv[]) {
    Binary_tree * bt;
    Binary_tree * min;
    Binary_tree * max;
    Binary_tree * successor;
    Binary_tree * presuccessor;
    //Binary_tree * search_result;
    Binary_tree * after_delete;
    bt = inserttree(bt,10);
    bt = inserttree(bt,9);
    bt = inserttree_recursion(bt,7);
    bt = inserttree(bt,18);
    bt = inserttree(bt,16);
    bt = inserttree(bt,12);
    bt = inserttree(bt,20);
    bt = inserttree(bt,19);
    
    //printf("%d\n",bt->right->num);
    //search_result = tree_search(bt,19);
    //printf("%d",search_result->parent->num);
    inorder_tree_walk(bt);
    //successor = tree_successor(bt->right);
    //printf("%d\n",successor->num);
    //printf("%d\n",bt->right->left->num);
    //presuccessor = tree_presuccessor(bt->right->left);
    //min = minimum_recursion(bt);
    //max = maximum_recurison(bt);
    //after_delete = tree_delete(bt, bt->left);
    //inorder_tree_walk_another(after_delete);
    //printf("%d\n",presuccessor->num);
    //printf("%d\n",min->num);
    //printf("%d\n",max->num);
    //printf("%d\n",bt->right->parent->num);
    return 0;
}
Beispiel #3
0
void generateoctree(void)
{
	reducelevel = MAXDEPTH;
	leaflevel = reducelevel + 1;

	while (get_pixel(insert_rgb)) {
		inserttree(&tree, 0);
		if (size > MAXCOLORS - 1)		/* max number of colors ! */
			reducetree();
	}
}
Beispiel #4
0
static void inserttree(OCTREE *tree, UINT depth)
{
	UINT branch;

	if (*tree == NULL)
		newandinit(tree,depth);
	(*tree)->colorcount++;
	(*tree)->rgbsum.r += insert_rgb[RED];
	(*tree)->rgbsum.g += insert_rgb[GREEN];
	(*tree)->rgbsum.b += insert_rgb[BLUE];
	if ((*tree)->leaf == FALSE && depth < leaflevel) {
		branch = TESTBIT(insert_rgb[RED],MAXDEPTH - depth) * 4 +
					TESTBIT(insert_rgb[GREEN],MAXDEPTH - depth) * 2 +
					TESTBIT(insert_rgb[BLUE],MAXDEPTH - depth);
		if ((*tree)->next[branch] == NULL) {
			(*tree)->children++;
			if ((*tree)->children == 2)
				makereduceable(depth,*tree);
		}
		inserttree(&((*tree)->next[branch]), depth + 1);
	}
}