Пример #1
0
void preorder_walk(struct t_node *root, print pr) {
    if(root) {
        pr(root->data);
        preorder_walk(root->left, pr);
        preorder_walk(root->right, pr);
    }
}
int main(void)
{
    /*
    int inorders[] = {4, 7, 2, 1, 5, 3, 8, 6};
    int preorders[] = {1, 2, 4, 7, 3, 5, 6, 8};
    struct TreeNode* root = rebuilt_tree(preorders, 0, 7, inorders, 0, 7);
    preorder_walk(root);
    printf("\n");
    inorder_walk(root);
    printf("\n");
    */
    int inorders_tree1[] = {9, 8, 4, 2, 7, 18, 17};
    int preorders_tree1[] = {18, 8, 9, 2, 4, 7, 17};
    struct TreeNode* tree1 = rebuilt_tree(preorders_tree1, 0, 6, inorders_tree1, 0, 6);
    preorder_walk(tree1);
    printf("\n");
    inorder_walk(tree1);
    printf("\n");

    int inorders_tree2[] = {9, 8, 2};
    int preorders_tree2[] = {8, 9, 2};
    struct TreeNode* tree2 = rebuilt_tree(preorders_tree2, 0, 2, inorders_tree2, 0, 2);
    preorder_walk(tree2);
    printf("\n");
    inorder_walk(tree2);
    printf("\n");

    printf("Contain: %d\n", contain_substructure(tree1, tree2));
}
Пример #3
0
void preorder_walk(avl_node *root)
{
	if(root == NULL)
		return;
	printf("key: %d ", root->key);
	preorder_walk(root->left);
	preorder_walk(root->right);
}
Пример #4
0
void preorder_walk(struct nod_arbore *radacina) {
    if (radacina != NULL) {
        printf("%d ", radacina->key);
        preorder_walk(radacina->left);
        preorder_walk(radacina->right);

    }
}
void preorder_walk(struct TreeNode* root)
{
    if (root == NULL) {
        return;
    }
    printf("%d ", root->value);
    if (root->left != NULL) {
        preorder_walk(root->left);
    }
    if (root->right != NULL) {
        preorder_walk(root->right);
    }
}
Пример #6
0
void preorder(struct bs_tree *tree, print pr) {
    preorder_walk(tree->root, pr);
    printf("\n");
}