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)
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.
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
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 :
Mais voilà... Tout aurai été trop beau si sa avait marché...
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)
A l'éxecution je rencontre le message suivant :
Es-que quelqu'un pourrai m'aider svp ?? car je planche et je trouve pas mon erreur...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
D'avance merci.
Partager