Voilà j'utilise Python 3.1.1 pour un DM d'algorithmique...

Et j'ai vous vous en douter un problème. En effet il m'est demander de créer une fonction de recherche auto-adaptative sur un type de dictionnaire définie comme tel:
(le type n'est pas a modifier puisqu'il fait parti de l'énoncer)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
class noeud(object):
    "la structure noeud d'un arbre ternaire"
    def __init__(self,car,present,gauche=None,milieu=None,droit=None):
        self.car=car
        self.present=present
        self.gauche=gauche
        self.milieu=milieu
        self.droit=droit
J'ai préalablement créer des fonctions rotationDroite et rotationGauche qui utilise la structure pour faire pivoté les nœud et visiblement elles marchent.

Mais mon problème réside dans la recherche: il faut que ma fonction prenne en argument un dictionnaire et un mot et renvoi une valeur booléenne et un dictionnaire qui et le même que celui de l'entré mais réorganisé pour un accès plus rapide au dernier mot utilisé... Bref...

Le problème ne vient pas de l'algorythme mais de la syntaxe, le code que j'ai écris et le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
def rechercheAutoadaptive(dico,mot):
    if dico!=None:
        if len(mot)==1 and dico.car==mot[0]:
            return dico.present,dico
        elif mot[0]==dico.car:
            return (recherche(dico.milieu,mot[1:]))
        elif mot[0]<dico.car:
            BOOLE,dico.gauche = recherche(dico.gauche,mot)  #BOOLE et la valeur de
            if BOOLE == True:                               #la recherhce dans le sous arbre
                dico = rotationDroite(dico)
            return BOOLE,dico
        elif mot[0]>dico.car:
            BOOLE,dico.droit = recherche(dico.droit,mot)
            if BOOLE == True:
                dico = rotationDroite(dico)
            return (verassite,dico)
Mais voilà... Tout aurai été trop beau si sa avait marché...

A l'éxecution je rencontre le message suivant :
File "C:\Python\vosNoms.py", line 113, in rechercheAutoadaptive
BOOLE,dico.gauche = recherche(dico.gauche,mot) #BOOLE et la valeur de
TypeError: 'bool' object is not iterable
Es-que quelqu'un pourrai m'aider svp ?? car je planche et je trouve pas mon erreur...

D'avance merci.