Указатели на структуру в с++

Пытаюсь построить обратное бинарное дерево. У меня есть некая структура node (узел дерева), в которой находятся string simb, int counter, node* parent, node* l, node* r

Я создаю массив этих структур, затем создаю цикл. Пока в массиве структур не останется 1 элемент (на самом деле, я просто сужаю рассматриваемый массив, вынося не нужные мне элементы за активную область):

сортирую по counter в порядке возрастания. Создаю new_elem (экземпляр node), в его поля :

counter - я записываю сумму counter`ов первого и второго элемента массива (то есть структуры с минимальным и предминимальным counter соответственно) simb - я записываю значения полей simb из первой и второй структуры в массиве.

И тут начинается самое интересное. Мне надо ссылаться на предыдущие элементы. Для этого я пытаюсь new_elem->l присвоить указатель на первую структуру в массиве, а new_elem->r - указатель на вторую структуру.

А потом я как бы удаляю эти структуры из массива, но на самом деле просто выношу в конец и уменьшаю размер рассматриваемой области. А new_elem записываю в начало массива, сдвигая все остальные элементы. Короче, каша получается какая-то. Можете, пожалуйста, подсказать, как нормально реализовать обратное бинарное дерево, или где почитать...


Ответы (0 шт):