Example #1
0
t_btree	*btree_insert_data(t_btree *root, void *data, size_t data_size,
		int (*cmpf)(void *, void *))
{
	if (!root)
		return (btree_create_node(data, data_size));
	if ((*cmpf)(data, root->data) < 0)
	{
		if (root->left == 0)
		{
			root->left = btree_create_node(data, data_size);
			return (root->left);
		}
		btree_insert_data(root->left, data, data_size, cmpf);
	}
	else if ((*cmpf)(data, root->data) > 0)
	{
		if (root->right == 0)
		{
			root->right = btree_create_node(data, data_size);
			return (root->right);
		}
		btree_insert_data(root->right, data, data_size, cmpf);
	}
	return (root);
}
Example #2
0
void	btree_insert_data(t_btree **root, void *item, int (*cmpf)(void *, void *))
{
	if (*root == NULL)
		btree_create_node(item);
	else if ((*cmpf)(item, (*root)->item) < 0)
		btree_insert_data(&(*root)->left, item, cmpf);
	else
		btree_insert_data(&(*root)->right, item, cmpf);
}
Example #3
0
void	btree_insert_data(t_btree **root, void *item, int
		(*cmpf)(const char *, const char *))
{
	if (*root)
		if ((*cmpf)((*root)->item, item) >= 0)
			btree_insert_data(&(*root)->left, item, cmpf);
		else
			btree_insert_data(&(*root)->right, item, cmpf);
	else
		*root = btree_create_node(item);
}
Example #4
0
void            ls_read(t_btree **tree, char *pathname)
{
	struct dirent *file;
	DIR     *rep;

	rep = opendir(pathname);
	if (rep != NULL)
	{
		if (!(check_slash(pathname)))
			pathname = ft_strjoin(pathname, "/");
		while((file = readdir(rep)) != NULL)
		{
			pathname = ft_strjoin(pathname, file->d_name);
			btree_insert_data(tree, file->d_name, file->d_type);
		}
		free(pathname);
		pathname = NULL;
		closedir(rep);
	}
	else
		print_error(pathname);
}
Example #5
0
int main()
{
	t_btree *root;

	root = NULL;
	btree_insert_data(&root, "5", &ft_strcmp);
	btree_insert_data(&root, "3", &ft_strcmp);
	btree_insert_data(&root, "8", &ft_strcmp);
	btree_insert_data(&root, "4", &ft_strcmp);
	btree_insert_data(&root, "1", &ft_strcmp);
	btree_insert_data(&root, "9", &ft_strcmp);
	btree_insert_data(&root, "0", &ft_strcmp);
	btree_insert_data(&root, "7", &ft_strcmp);
	btree_insert_data(&root, "6", &ft_strcmp);
	btree_insert_data(&root, "2", &ft_strcmp);
	btree_insert_data(&root, "4", &ft_strcmp);
	btree_insert_data(&root, "7", &ft_strcmp);
	ft_putstr("<");
	btree_apply_prefix(root, &ft_putstr);
	ft_putstr("\n>531024487679\n");
	/* ft_putstr("<"); */
	/* btree_apply_infix(root, &ft_putstr); */
	/* ft_putstr("\n>012344567789\n"); */
	/* ft_putstr("<"); */
	/* btree_apply_suffix(root, &ft_putstr); */
	/* ft_putstr("\n>021443677985\n"); */
	return (0);
}