Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 April 26

B[

Bars0_o [SpamBlock] in IT KPI C/C++ ХВ (не UB)
ща почитаю
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
куча увеличивается
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
стек же нет
источник

B[

Bars0_o [SpamBlock] in IT KPI C/C++ ХВ (не UB)
но если я правильно понял, если рекурсию заменить на цикл то переполнения не будет
источник

М

МишаНЯ in IT KPI C/C++ ХВ (не UB)
дерево и его части удаляешь только в деструкторе?
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
да
источник

B[

Bars0_o [SpamBlock] in IT KPI C/C++ ХВ (не UB)
все, вкурил
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
Ля, я сейчас подумал как это перебрать без рекурсии и кажись сломал мозг
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
мб указателем бегать?
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
Та я под свой вариант подумал. Где потомки в векторе сидят
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
мне кажется тоже чтото похожее получится
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
Хм, ну типа у меня есть класс
class Data{
public:
    std::vector<Data*> child;
    Data* parent  = nullptr;
    int value = 0;
}

И каждый потомок может иметь еще потомков и тд.
И как это создать без рекурсии и удалить без рекурсии. Сложна)
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
у тебя в каждой ноде есть указатель вверх
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
когда ты удалил всех детей, идешь вверх
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
тебе нужен 1 итератор/поинтер
источник

MS

Meow Sav in IT KPI C/C++ ХВ (не UB)
Типа с конца начинать ?
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
ты идешь по детям
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
если их нет
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
то идешь наверх и удаляешь ноду из которой пришел
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
идешь в следующего ребенка
источник