binarytree二叉树节点DFS深度优先搜索遍历,递归,python

x33g5p2x  于2021-11-26 转载在 Python  
字(0.6k)|赞(0)|评价(0)|浏览(362)

binarytree二叉树节点DFS深度优先搜索遍历,递归,python

  1. import random
  2. from binarytree import build
  3. def app():
  4. data = []
  5. for i in range(13):
  6. data.append(i)
  7. random.shuffle(data)
  8. root = build(data)
  9. root.pprint(index=True, delimiter=',')
  10. paths = []
  11. print('-----')
  12. my_dfs_travel(root, paths)
  13. print('深度遍历', paths)
  14. # 深度遍历,从左至右,递归实现
  15. def my_dfs_travel(root, paths):
  16. if root == None:
  17. return
  18. paths.append(root.value)
  19. if root.left != None:
  20. my_dfs_travel(root.left, paths)
  21. if root.right != None:
  22. my_dfs_travel(root.right, paths)
  23. if __name__ == '__main__':
  24. app()

输出:

  1. ________________0,7_______________
  2. / \
  3. _____1,6______ ______2,5_
  4. / \ / \
  5. __3,4_ __4,0__ __5,2_ 6,9
  6. / \ / \ / \
  7. 7,12 8,3 9,11 10,10 11,8 12,1
  8. -----
  9. 深度遍历 [7, 6, 4, 12, 3, 0, 11, 10, 5, 2, 8, 1, 9]

相关文章