Я пытаюсь реализовать двоичное дерево ADT в C, и я хотел бы использовать API, функции которого имеют форму foo (объект, значение). Насколько я написал рабочее дерево для значения int, но когда я вызываю функцию BinTree_insert, я должен использовать оператор "&", чтобы получить адрес объекта. Можно ли изменить эту функцию, чтобы пропустить &?
typedef struct __bintree_node_t
{
int data;
struct __bintree_node_t* left;
struct __bintree_node_t* right;
}bintree_node_t;
static void __BinTree_insert(bintree_node_t** node, int value)
{
if(!(*node))
{
*node = __BinTree_newNode();
(*node)->data = value;
}
else if((*node)->data < value)
__BinTree_insert(&(*node)->left, value);
else if((*node)->data > value)
__BinTree_insert(&(*node)->right, value);
}
void BinTree_insert(bintree_node_t* node, int value)
{
//??????
}
int main(void)
{
bintree_node_t* root = 0;
BinTree_insert(root, 2); //sth like this
__BinTree_insert(&root, 1); //instead of this
}