Вставка элемента в двоичное дерево

Пробовал много исследовать по сети, но мог получить любую помощь, Везде это как добавление узла в дерево бинарного поиска.

Вопрос: Запрос алгоритма и фрагмента кода для добавления узла вБинарное дерево, (или укажите мне правильный URL)

Предположение: согласно моему пониманию,Бинарное дерево а такжеДвоичное дерево поиска это отличается? Поправь меня, если я ошибаюсь.

(запрос: если вы пишете свой фрагмент кода, пожалуйста, используйте правильное имя переменной, которое поможет в понимании)

Например: бинарное дерево

5 7 3 x1 x2 x3

                 5

          7               3

   x1       x2       x3       

Двоичное дерево поиска 5 7 3 2 4 6

                   5
          3               7

   2          4       6       





insert(int key, struct node **root)
{
    if( NULL == *root )`
    {
        *root = (struct node*) malloc( sizeof( struct node ) );`
        (*root)->data = key;
        (*root)->left = NULL;    
        (*root)->right = NULL;  
    }
    else if(key < (*root)->data)
    {
        insert( key, &(*root)->left );
    }
    else if(key > (*root)->data)
    {
        insert( key, &(*root)->right );
    }
}

Ответы на вопрос(5)

Ваш ответ на вопрос