def affiche(self): L = self.largeur() hauteur = int( log( len(L) + 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(L) ) ): ligne += "{0:^3}".format( str( L[j] ) ) if j < min( 2**(i+1) - 1 , len(L) ) - 1: ligne += ecart_ligne print('\n'+ecart_debut+ligne)