хотя это я неправильно второе написал. при обходе должны быть отсортированы элементы
Я просто не знаю, что я не так делаю. Я сначала проверяю, чтобы на одном уровне было <= 4 элементов, и тогда добавляю на том же уровне. А иначе-вот там и где-то кроется ошибка. Я уже много вариантов перепробовал, сейчас я беру родителя элемента, и иду направо в одном ряду с родителем, и заношу новый объект под ним.
Тут-то вроде все тоже нормально, но вот если дошло до конца ряда, непонятно, что делать.
Я сейчас пытаюсь идти вверх по дереву, пока не найду такого родителя, где можно иди направо. Если дошел до вершины, то я нахожу элемент, который внизу левее всего(на скрине это элемент номер 6), и помещаю новый элемент под ним. Но в итоге все ломается.