コード例 #1
0
ファイル: main.c プロジェクト: ibanezzaro/leaf-to-list
void visit_leaf(t_tree * ptr, t_list ** ptrptr)
{
    if(ptr->left == NULL && ptr->right == NULL)
    {
        printf("\nLeaf value = %d\nI'm going to put it in your list\n", ptr->value);
        list_insertion(ptrptr, ptr->value);
    }
    else
    {
        if(ptr->left != NULL)
        {
            visit_leaf(ptr->left, ptrptr);
        }
        if(ptr->right != NULL)
        {
            visit_leaf(ptr->right, ptrptr);
        }
    }
}
コード例 #2
0
ファイル: rope.c プロジェクト: Mons/tarantool
/** Apply visit_leaf function to every rope leaf. */
void
rope_traverse(struct rope *rope, void (*visit_leaf)(void *, size_t))
{
	struct rope_iter iter;
	rope_iter_create(&iter, rope);

	struct rope_node *leaf;

	for (leaf = rope_iter_start(&iter);
	     leaf != NULL;
	     leaf = rope_iter_next(&iter)) {

		visit_leaf(leaf->data, leaf->leaf_size);
	}
}
コード例 #3
0
ファイル: main.c プロジェクト: ibanezzaro/leaf-to-list
int main()
{

    t_tree * ptr;
    t_list *ptrptr = NULL;

    //è possibile inserire in runtime più nodi, basta mettere new_node dentro un while(!data) e chiedere se inserire a dx o sx
    t_tree *root = new_node();
    root->left = new_node();
    root->right = new_node();
    root->left->left = new_node();
    //root->left->right = new_node();*/
    root->right->left = new_node();
    root->right->right = new_node();


    visit_leaf(root, &ptrptr);
    visit_list(&ptrptr);

}