void	*btree_search_item(t_btree *root, void *data_ref, int
		(*cmpf)(void *, void *))
{
	if (root)
	{
		btree_search_item(root->left, data_ref, cmpf);
		if (cmpf(root->item, data_ref) == 0)
			return (root->item);
		btree_search_item(root->right, data_ref, cmpf);
	}
	return (NULL);
}
Beispiel #2
0
void	*btree_search_item(t_btree *root, void *data_ref,
								int (*cmpf)(void *, void *))
{
	void	*result;

	result = NULL;
	if (root == NULL)
		return (NULL);
	if (root->left)
		result = btree_search_item(root->left, data_ref, cmpf);
	if (cmpf(root->item, data_ref) == 0)
		return (root->item);
	if (result == NULL && root->right != NULL)
		result = btree_search_item(root->right, data_ref, cmpf);
	return (result);
}
void	*btree_search_item(t_btree *r, void *dt, int (*cmpf)(void *, void *))
{
  int	result;
  t_btree	*node;

  result = (*cmpf)(r->item, dt);
  if (result == 0)
    return (r->item);
  node = r->right;
  if (result < 0)
    node = r->left;
  if (node == NULL)
    return (NULL);
  else
    return (btree_search_item(node, dt, cmpf));

}