Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. |-- princes
  2. | |-- rices
  3. | | |-- ices
  4. | | | |-- ice
  5. | | |-- rice
  6. | | | |-- ice
  7.  
  8. binary_tree.find_all_path('rices','ice') -->
  9. ['rices','ices','ice'] ['rices','rice','ice']
  10.  
  11. binary_tree.find_all_path('princes','ice') -->
  12. ['princes','rices','ices','ice']
  13. ['princes','rices','rice','ice']
  14.  
  15. class WNode(object):
  16. def __init__(self, w):
  17. self.root=w
  18. self.children=[]
  19. def __str__(self):
  20. return self.root
  21.  
  22. def find_all_path(self,start,end,level=1, start_level=0, end_level=999, result=[])
  23. for node in self.children:
  24. word=str(node)
  25. if len(result)==0:
  26. del result[:]
  27.  
  28. if word==start or str(node.root)==start:
  29. if word not in result:
  30. result.append(word)
  31. start_level=level
  32.  
  33. elif len(word)==len(end):
  34. if word==w2 and start_level>0:
  35. result.append(word)
  36. if start not in result:
  37. result.insert(0,start)
  38. del result[:]
  39.  
  40. if len(word)==len(end):
  41. end_level=level
  42.  
  43. if start_level>0 and level>start_level and len(word)>len(end):
  44. result.append(word)
  45. node.find_all_path(start,end,level+1,start_level,end_level,result)
  46.  
  47. return result
  48.  
  49. binary_tree.find_all_path('princes','ice') -->
  50. ['prices', 'price', 'rice', 'ice'],
  51. ['prices', 'rices', 'ices', 'ice']
  52. ['prices', 'rice', 'ice'] -->WRONG
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement