Python实现二叉树的左中右序遍历
16lz
2021-01-22
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/3/18 12:31 # @Author : baoshan # @Site : # @File : binarytree.py # @Software: PyCharm Community Edition # python 实现二叉树的左中右序遍历 class Node(object): def __init__(self, index): self.index = index self.left_child = None self.right_child = None class BinaryTree(Node): def __init__(self, root): self.root = root def pre_travel(self, node): if not node: return print(node.index) self.pre_travel(node.left_child) self.pre_travel(node.right_child) def mid_travel(self, node): if not node: return self.mid_travel(node.left_child) print(node.index) self.mid_travel(node.right_child) def suf_travel(self, node): if not node: return self.suf_travel(node.left_child) self.suf_travel(node.right_child) print(node.index) node_dict = {} for i in range(1, 10): node_dict[i] = Node(i) node_dict[1].left_child = node_dict[2] node_dict[1].right_child = node_dict[3] node_dict[2].left_child = node_dict[5] node_dict[2].right_child = node_dict[6] node_dict[3].left_child = node_dict[7] node_dict[7].left_child = node_dict[8] node_dict[7].right_child = node_dict[9] tree = BinaryTree(node_dict[1]) print('---左序遍历---') tree.pre_travel(tree.root) print('---中序遍历---') tree.mid_travel(tree.root) print('---右序遍历---') tree.suf_travel(tree.root)
更多相关文章
- Python文件遍历的三种方法
- python_列表_循环遍历
- java中循环遍历删除List和Set集合中元素的方法
- [疯狂Java]NIO.2:walkFileTree、FileVisitor(遍历文件/目录)