from math import log
def affiche(arbre):
hauteur = int(log(len(arbre) + 1, 2))
for i in range(hauteur):
ligne = ''
# ecartement entre les noeuds sur cette ligne
ecart_ligne = (2**(hauteur-i+1) - 3) * ' '
# écart au début
ecart_debut= (2**(hauteur-i) - 2) * ' '
for j in range(2**i - 1, min(2**(i+1) - 1, len(arbre))):
ligne += "{0:^3}".format(str(arbre[j]))
if j < min(2**(i+1) - 1, len(arbre)) - 1:
ligne += ecart_ligne
print('\n'+ecart_debut+ligne)
arbre = [7,3,8,9,2,1,5,10,13,15,17,12,14,None,None]
affiche(arbre)