Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1.     def next(self, node, position):
  2.         """Trouver le noeud le plus proche à droite du noeud donné à la position donnée."""
  3.        
  4.         # On teste en bas à gauche pour voir si l'élément est égal. Si oui, on le retourne.
  5.         if node.child[position].get_data()[-1][0] == node.get_data()[position][0]:
  6.             # (enfant_gauche, position_le_plus_a_droite)
  7.             return (node.child[position], len(node.child[position].get_data()))
  8.        
  9.         # Sinon, on veut aller directement en bas à droite (plus proche plus grand) s'il existe.
  10.         if position + 1 < len(node.child):
  11.             # (enfant_droit, position_le_plus_a_gauche)
  12.             return (node.child[position + 1], 0)
  13.        
  14.         # Sinon, on regarde s'il y a une (position + 1) du même noeud. Si oui, on la retourne.
  15.         if position + 1 < len(node.get_data()):
  16.             # (noeud_actuel, position_a_droite_d_actuellement)
  17.             return (node, position + 1)
  18.        
  19.         # Sinon, on trace la hiérarchie à partir du haut, on remonte au parent direct (à la bonne position),
  20.         # et on retourne le parent si jamais il est plus grand, sinon, on remonte encore au parent, et si on
  21.         # ne trouve jamais, on retourne None.
  22.    
  23.     #WIP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement