python实现二叉树扫描(前相扫描、中相扫描、后相扫描)
在计算机科学中,二叉树是种树的数据结构,每个节点最多有两个子节点:左子节点和右子节点。 运用集合理论概念的递归定义是,(非空)二叉树是元组(l,s,r ),其中l和r是二叉树或空集合,s是包含根的单例集合。 一些作者还允许二叉树为空集合。
三种常见的遍历方法:
1 .前面的遍历。 访问根节点后,按前面的顺序遍历左侧子树,按最后前面的顺序遍历右侧子树。 可以看到,此操作的定义是递归的。
2 .中序扫描。 首先按中间顺序遍历左侧子树,然后访问根节点,最后按中间顺序遍历右侧子树。 因为左边的子树的值都小于根节点,右边的子树的值都大于根节点,所以中序遍历一棵树得到的结果从小到大都是有序的,通过这个特点,你中序遍历是否正确实现了
3 .后续遍历。 依次遍历左侧的子树,然后遍历右侧的子树,最后访问根节点。
超前遍历
以上图为例。 谈谈树的三种扫描方法吧。
第一个遍历:访问根节点,然后访问左孩子,最后访问右孩子。
因此,上述扫描的结果为GEDACHS。