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)