zoukankan      html  css  js  c++  java
  • 完全二叉树和三序遍历算法(先序)(上)

    完全二叉树先序遍历
     
    完全二叉树概念:
    1、没有叶子节点得都在最后两层
    2、且最后一层得节点都集中在左边,倒数第二层没有空节点
     
    先序遍历
    先遍根节点,再遍历左子树,再到右子树
    中序遍历
    先遍历左子数,再遍历根节点再遍历右子树
    后序遍历
    先遍历左子树,再遍历右子树,再遍历根节点
     
        创建二叉树:
    >>> class TreeNode():
    ...     def __init__(self,var,left=None,right=None):
    ...         self.var=var
    ...         self.left=left
    ...         self.right=right
    ...
    >>> class BinaryTree():
    ...     def __init__(self,root):
    ...         self.root=root
     
      先序遍历算法:
    >>> def PreOrder(retlist,node):
    ...     if node!=None:#如果节点为空就可以直接退出,完全二叉树开始为空得节点后开始就不会再有节点内容
    ...         retlist.append(node)#先输出根节点
    ...         retlist.append(node.left)#再输出左节点
    ...         retlist.append(node.right)#再输出右节点
    ...     return retlist
     
      创建二叉树:
    >>> x=TreeNode(1)#添加根节点
    >>> x.left=TreeNode(2,left=TreeNode(4,left=TreeNode(8),right=TreeNode(9)))#添加根节点下得左节点部分
    >>> x.right=TreeNode(3,left=TreeNode(12))#与上相反
     
      先序算法读取二叉树:
    >>> try:
    ...     result=PreOrder([],binarytree.root)
    ... except:
    ...     traceback.print_exc()
     
  • 相关阅读:
    IDEA 修改JavaWeb的访问路径
    坦克大战--Java类型 ---- (1)音乐播放
    codeforces 620C
    算法笔记之KMP算法
    算法笔记数组
    26. Remove Duplicates from Sorted Array
    哈夫曼树的证明
    Complete Binary Search Tree
    Root of AVL Tree
    .net framework环境
  • 原文地址:https://www.cnblogs.com/zhangtebie/p/11185858.html
Copyright © 2011-2022 走看看