
`Я хотел бы построить сбалансированное дерево (для задания курса алгоритмов Университета Сан-Диего, на Coursera), вместо того, чтобы строить несбалансированное дерево и растягивать его. впоследствии.
Эта моя попытка (в Java) неверна, я разместил ее здесь, просто чтобы объяснить свою идею, добавив символы в порядке 7,4,9,2,6, 8,10,1,3,5 (для массива с индексом 1). Не могли бы вы предложить мне правильный алгоритм?
this.s = str.toCharArray();
int k = (int) (Math.log(s.length) / Math.log(2));
int start = (int) Math.pow(2, k);
root = new Node(start);
for (int i = k - 1; i >= 0; i--) {
start = (int) Math.pow(2, i);
int step = 2 * start;
for (int j = start; j
Подробнее здесь: https://stackoverflow.com/questions/791 ... inary-tree
Мобильная версия