Дерево. Проблема с заполнением

210
06 июня 2017, 00:39
#include <iostream>
#include <conio.h>
using namespace std;
struct node
{
int a;
node *left, *right;
};
void Show(node *tree);
void Push(int x,node *&tree);
int main()
{
node *tree = NULL;
int k, num;
cout << "Input the number of elements" << endl;
cin >> k;
for (int i = 0; i < k; i++)
{
    cout << "Input the element" << endl;
    cin >> num;
    Push(num,tree);
}
Show(tree);
_getch();
return 0;
}
void Push(int x,node *&tree)
{
node *tmp = new node;
tmp = tree;
node **current = &tree;
bool flag = false;
if (tree == NULL)
{
    tree = new node;
    tree->a = x;
    tree->left = tree->right = NULL;
    return;
}
while (!flag)
{
    if (x > tmp->a)
    {
        if (tmp->right != NULL)
        {
            tmp = tmp->right;
        }
        else
        {
            /**/
            *current = tmp;
            tmp->right = new node;
            tmp->right->left = tmp->right->right = NULL;
            tmp->right->a = x;
            (*current)->right = tmp->right;
            flag = true;
        }
    }
    else
    {
        if (tmp->left != NULL)
        {
            tmp = tmp->left;
        }
        else
        {
            tmp->left = new node;
            tmp->left->left = tree->left->right = NULL;
            tmp->left->a = x;
            tree = tmp;
            flag = true;
        }
    }
    }
}
void Show(node *tree)
{
if (tree != NULL)
{
    Show(tree->left);
    cout << tree->a << " ";
    Show(tree->right);
}
}

Делал заполнения дерева с помощью рекурсии а теперь попытался через цикл .. Но есть проблема, я нахожу место куда надо вставить элемент но не могу создать связь.

READ ALSO
Как работать с ethernet портом на c++

Как работать с ethernet портом на c++

ЗдравствуйтеУ меня есть пульт который подключается к специальному контроллеру через ethernet кабель

410
Ожидание выполнения потока Winapi

Ожидание выполнения потока Winapi

Подскажите, почему выполняется только первый поток? Как можно исправить, что бы выполнялись потоки по очереди?

328
Что значит конструкция if (mas[i] - !!a != a[i])

Что значит конструкция if (mas[i] - !!a != a[i])

Недавно начал изучать C++, столкнулся со странной конструкцией условного оператора и не могу понять что он с чем сравнивает

420