from modFile import File
from modPile import Pile
from modPile import Cellule

#Exercice 1
l1 = Cellule(12,Cellule(15,Cellule(9,Cellule(18,None))))

def somme(l1):
    if l1.suivante is None :
        return 0
    else :
        return  l1.valeur + somme(l1.suivante)  

print(somme(l1))

#Exercice 2

texte = "ressasser"

def string_to_pile(chaine):
    p1 = Pile()
    for c in chaine:
        p1.empiler(c)
    return p1

p1 = string_to_pile(texte)

def string_to_file(chaine):
    f1 = File()
    for c in chaine:
        f1.ajouter(c)
    return f1

f1 = string_to_file(texte)

def longueur_pile(p1):
    cpt = 0
    while p1.est_vide() == False :
        print(p1.depiler())
        cpt+=1
    return cpt

texte = "ressasser"
p1 = string_to_pile(texte)
print(longueur_pile(p1))



def palindrome(p1,f1):
    if p1.est_vide() and f1.est_vide() :
        return True
    elif p1.depiler() == f1.retirer() :
        return palindrome(p1,f1)
    else :
        return False
        

texte = "ressasser"
p1 = string_to_pile(texte)
f1 = string_to_file(texte)

print(texte,palindrome(p1,f1))


texte = "ramasser"
p1 = string_to_pile(texte)
f1 = string_to_file(texte)

print(texte,palindrome(p1,f1))

#Exercice 3

from modPile import Noeud  

a1 = Noeud(Noeud(Noeud(None ,15,None ) ,9,None ) ,12, Noeud(None ,12, Noeud(None ,18,None )))


def somme_noeuds(a):
    if a is None :
        return 0
    else :
        return a.valeur + somme_noeuds(a.gauche) + somme_noeuds(a.droit)

print(somme_noeuds(a1))

#Exercice 4


from modPile import ABR

a1 = ABR()
a1.ajouter(32)
a1.ajouter(17)
a1.ajouter(48)
a1.ajouter(9)
a1.ajouter(25)
a1.ajouter(41)
a1.ajouter(55)
a1.ajouter(13)
a1.ajouter(27)
a1.ajouter(44)
a1.ajouter(53)
a1.affiche()

def largeur(a1,niveau) :
    if niveau == 0 :
        print(a1.valeur)
    else :
        largeur(a1.droit,niveau-1)
        largeur(a1.gauche,niveau-1)

largeur(a1.racine,2)

footer2

Richard GAUTHIER
Professeur de Physique Appliquée
Certification ISN
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

www.carhaix2020.bzh