#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2016-11-18 08:53:45
# @Author : why_not_try
# @Link : http://example.org
# @Version : python 2.7 class Tree(object):
def __init__(self,data,left,right):
self.data=data
self.left=left
self.right=right
def post_visit(Tree):
if Tree:
post_visit(Tree.left)
post_visit(Tree.right)
print Tree.data
def pre_visit(Tree):
if Tree:
print Tree.data
pre_visit(Tree.left)
pre_visit(Tree.right)
def in_visit(Tree):
if Tree:
in_visit(Tree.left)
print Tree.data
in_visit(Tree.right)
node1=Tree(1,0,0)
node2=Tree(2,0,0)
node3=Tree(3,node1,node2)
node4=Tree(4,0,0)
node5=Tree(5,node4,node3) print "the post_visit is ....."
post_visit(node5) print "the pre_visit is......."
pre_visit(node5) print "the in_visit is ......."
in_visit(node5)

代码很简单,相信一看大部分就能理解。在每一个遍历算法中首先if Tree 为了防止树的左节点或右节点为空时(0代表为空)还去遍历 ,此时程序运行将会报错。

此为node5:

运行结果如下:

python二叉树递归算法之后序遍历,前序遍历,中序遍历的更多相关文章

  1. 数据结构-二叉树(1)以及前序、中序、后序遍历(python实现)

    上篇文章我们介绍了树的概念,今天我们来介绍一种特殊的树--二叉树,二叉树的应用很广,有很多特性.今天我们一一来为大家介绍. 二叉树 顾名思义,二叉树就是只有两个节点的树,两个节点分别为左节点和右节点, ...

  2. Leetcode:105. 从前序与中序遍历序列构造二叉树&106. 从中序与后序遍历序列构造二叉树

    Leetcode:105. 从前序与中序遍历序列构造二叉树&106. 从中序与后序遍历序列构造二叉树 Leetcode:105. 从前序与中序遍历序列构造二叉树&106. 从中序与后序 ...

  3. Python实现二叉树的前序、中序、后序、层次遍历

      有关树的理论部分描述:<数据结构与算法>-4-树与二叉树:   下面代码均基于python实现,包含: 二叉树的前序.中序.后序遍历的递归算法和非递归算法: 层次遍历: 由前序序列.中 ...

  4. 【LeetCode】105. Construct Binary Tree from Preorder and Inorder Traversal 从前序与中序遍历序列构造二叉树(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 日期 题目地址:https://leetcod ...

  5. 二叉树的前序、中序、后序遍历 python

    话不多说,直接上代码 class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None cl ...

  6. LeetCode二叉树的前序、中序、后序遍历(递归实现)

    本文用递归算法实现二叉树的前序.中序和后序遍历,提供Java版的基本模板,在模板上稍作修改,即可解决LeetCode144. Binary Tree Preorder Traversal(二叉树前序遍 ...

  7. Java实现二叉树的前序、中序、后序遍历(非递归方法)

      在上一篇博客中,实现了Java中二叉树的三种遍历方式的递归实现,接下来,在此实现Java中非递归实现二叉树的前序.中序.后序遍历,在非递归实现中,借助了栈来帮助实现遍历.前序和中序比较类似,也简单 ...

  8. 已知前序(后序)遍历序列和中序遍历序列构建二叉树(Leetcode相关题目)

    1.文字描述: 已知一颗二叉树的前序(后序)遍历序列和中序遍历序列,如何构建这棵二叉树? 以前序为例子: 前序遍历序列:ABCDEF 中序遍历序列:CBDAEF 前序遍历先访问根节点,因此前序遍历序列 ...

  9. LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal 由前序和中序遍历建立二叉树 C++

    Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...

  10. Java实现二叉树的前序、中序、后序、层序遍历(非递归方法)

      在上一篇博客中,实现了Java中二叉树的四种遍历方式的递归实现,接下来,在此实现Java中非递归实现二叉树的前序.中序.后序.层序遍历,在非递归实现中,借助了栈来帮助实现遍历.前序和中序比较类似, ...

随机推荐

  1. The Ninth Hunan Collegiate Programming Contest (2013) Problem C

    Problem C Character Recognition? Write a program that recognizes characters. Don't worry, because yo ...

  2. 百度校招面试经历及总结(已发offer)

    听说发面经可以攒rp,希望早点给我确定的offer通知,也希望看到这个面经的小伙伴能顺利拿到心仪的offer~ 职位:机器学习-数据挖掘工程师 9.15 上午11点 一面 1.介绍项目 2.考研意向, ...

  3. 区间k大数查询

    问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. 第二行包含n个正整数,表示给定的序列. 第三个包含一个正整数m,表示询问个数 ...

  4. 三味书屋 bbb

    为学日益 ,为道日损 .损之又损,以至于无为

  5. note name

    谦谦君子:借用<周易·谦>:“初六,谦谦君子,用涉大川,吉.” 温润如玉:化用<诗经·卫风·淇奥>“有匪君子,如切如磋,如琢如磨”之义.

  6. ASPxTreeList控件去根节点的新增修改操作(写在onCommandColumnButtonInitialize()事件中)

    treelist去掉根节点按钮效果图: //去掉父节点及子节点旁的新增.修改.删除操作(写在onCommandColumnButtonInitialize事件中) protected void Tre ...

  7. play framework 框架安装及myeclipse 导入项目

    下载 play framework 框架. 解压你你要解压的目录 E:\play-1.2.7 相对其他的WEB框架.play的配置是相当简单的.没有那么多配置文件的搞法.上手比较快,就是相关的资料比较 ...

  8. poj1001_Exponentiation

    这题真是超级大模拟.好繁琐,自己写的打数加法,乘法,写的比我大一时候写的要好很多,大一是借助C++里面的string来写的,这把只用了C,浇一次就ac了,挺开心的,不过写了2个小时啊.注意零的处理.大 ...

  9. 十五、struts2中的拦截器(框架功能核心)

    十五.struts2中的拦截器(框架功能核心) 1.过滤器VS拦截器 功能是一回事. 过滤器是Servlet规范中的技术,可以对请求和响应进行过滤. 拦截器是Struts2框架中的技术,实现AOP(面 ...

  10. qt5.5实现 记事本程序

    最近由于要做Qt相关的毕业设计课题,以前对Qt完全不了解,对于客户端图形界面程序,也只对Windows下的MFC熟悉, 所以,由于Qt的跨平台特性和相对比较纯的C++的特点,就准备学习一下吧.这两天逛 ...