zoukankan      html  css  js  c++  java
  • 二叉树算法-用于记忆

    #/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    class TreeNode(object):
        def __init__(self,val,left=None,right=None):
            self.val = val
            self.left = left
            self.right = right
    
    class BinaryTree(object):
        def __init__(self,root=None):
            self.root = root
    
    def preOrder(retList,node):
        if node != None:
            retList.append(node)
            preOrder(retList,node.left)
            preOrder(retList,node.right)
        return retList
    
    def inOrder(retList,node):
        if node != None:
            inOrder(retList,node.left)
            retList.append(node)
            inOrder(retList,node.right)        
        return retList
    
    def postOrder(retList,node):
        if node != None:
            postOrder(retList,node.left)
            postOrder(retList,node.right)
            retList.append(node)
        return retList
    
    
    if __name__ == "__main__":
        print("====二叉树线遍历开始====")
        rootNode = TreeNode(11)
        rootNode.left = TreeNode(9,left=TreeNode(6,left=TreeNode(3),right=TreeNode(8)),right=TreeNode(10)
        rootNode.right = TreeNode(17,left=TreeNode(12),right=TreeNode(19))
        bTree = BinaryTree(rootNode)
        ret = preOrder([],bTree.root)
        for i in ret:
            print(i.val),
        print("====先序遍历结束====")
    
        ret = inOrder([],bTree.root)
        for i in ret:
            print(i.val),
        print("====中序遍历结束====")    
    
        ret = postOrder([],bTree.root)
        for i in ret:
            print(i.val),
        print("====后序遍历结束====")        
    

      保存为了更好的记忆

  • 相关阅读:
    环形进度条
    Angular.js入门(2)
    Angular.js入门(1)
    判断页面是手机访问还是电脑访问
    常见问题lufylegend.js
    JavaScript如何诞生
    管理思维修炼
    CROS+node-basis+ajax
    JavaScript操作cookie
    node-basis(提供nodejs开发的基础包)
  • 原文地址:https://www.cnblogs.com/wx2017/p/8926975.html
Copyright © 2011-2022 走看看