Example #1
0
output_que()
{
	int choice;
	while(1)
	{
		printf("1.Insert at right\n");
		printf("2.Insert at left\n");
		printf("3.Delete from left\n");
		printf("4.Display\n");
		printf("5.Quit\n");
		printf("Enter your choice : ");
		scanf("%d",&choice);

		switch(choice)
		{
		 case 1:
			insert_right();
			break;
		 case 2:
			insert_left();
			break;
		 case 3:
			delete_left();
			break;
		 case 4:
			display_queue();
			break;
		 case 5:
			exit();
		 default:
			printf("Wrong choice\n");
		}/*End of switch*/
	}/*End of while*/
}/*End of output_que() */
Example #2
0
int bi_search_tree_insert(BI_S_TREE *b, void *data)
{
	if (bitree_size(b) == 0)
		return insert_left(b, NULL, data);
	
	return search_insert(b, b->root, data);
}
Example #3
0
const void			*insert_node(struct s_node *node, const void *content,
		t_compare comp)
{
	int	comp_result;

	comp_result = comp(content, node->content);
	if (comp_result < 0)
		return (insert_left(node, content, comp));
	else
		return (insert_right(node, content, comp));
}
Example #4
0
static int search_insert(BI_S_TREE *b, struct bitree_node *node, void *data)
{
	if (b->compare(data, node->data) > 0) {
		if (node->right == NULL)
			return insert_right(b, node, data); 
		return search_insert(b, node->right, data);
	} else {
		if (node->left == NULL)
			return insert_left(b, node, data); 
		return search_insert(b, node->left, data);
	}
}
Example #5
0
static void* insert(
    struct reinvented_avl** root,
    const void* key,
    reinvented_avl_cmp comparator,
    size_t payload_size,
    reinvented_avl_ctor constructor,
    _Bool* inserted)
{
    if (!*root) {
        struct reinvented_avl* avl =
            malloc(sizeof(struct reinvented_avl) + payload_size);
        if (avl) {
            avl->height = 1;
            avl->left = 0;
            avl->right = 0;
            if (constructor(key, avl->payload)) {
                *root = avl;
                *inserted = 1;
                return avl->payload;
            }
        }
        free(avl);
        return 0;
    }
    int cmp = comparator(key, (*root)->payload);
    if (cmp == 0) {
        return (*root)->payload;
    } else if (cmp < 0) {
        return insert_left(
            root,
            key,
            comparator,
            payload_size,
            constructor,
            inserted);
    } else {
        return insert_right(
            root,
            key,
            comparator,
            payload_size,
            constructor,
            inserted);
    }
}