На странице Бинарного дерева Фрэнка Мича , кажется, что записи вашего дерева будут отображаться так:
0
\
1
/ \
2 \
\
3
/ \
4 / \
\ / \
5 \
/ \
6 \
\
7
/
8 /
\ /
9 /
/ \ /
10 \ /
\ /
11
/
12 /
\ /
13
/
14
Где каждое число в дереве представляет индекс его записивходной массив.Обратите внимание, что при обратном отсчете в первом круглом столбце индексы увеличиваются на 2. Во втором столбце они увеличиваются на 4, а в третьем столбце на 8.
Я бы создал массив строк сНазвание каждой игры в них.Затем сделайте что-то вроде этого:
num_rounds = x
num_games = (2 ^ num_rounds) - 1
game_names = array(num_games)
for round = 0 to num_rounds - 1
index = (2 ^ round) - 1
increment = 2 ^ (round + 1)
game_number = 0
while index < num_games
game_names[index] = sprintf("round %s, game %s", round, game_number)
game_number++
index += increment
display_tree(game_names)