python 实现二叉树相关算法

Posted 光彩照人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 实现二叉树相关算法相关的知识,希望对你有一定的参考价值。

一、构建与遍历二叉树

 

class Node(object):
    def __init__(self,item):
        self.key=item
        self.left=None
        self.right=None

 

class BinaryTree(object):
    def __init__(self):
        self.root=None

    def addNode(self,item):
        new_node = Node(item)
        if self.root is None:
           self.root=new_node
        else:
            stack=[]
            stack.append(self.root)
            while True:
                node=stack.pop(0)
                if node.left is None:
                    node.left=new_node
                    return
                elif node.right is None:
                    node.right=new_node
                    return
                else:
                    stack.append(node.left)
                    stack.append(node.right)

    def traverse(self):  #层次遍历
        if self.root is None:
            return None
        else:
            s=[]
            s.append(self.root)
            while len(s) > 0:
                node = s.pop(0)
                print(node.key)
                if node.left is not None:
                    s.append(node.left)
                if node.right is not None:
                    s.append(node.right)

    def preOrder(self,root):
        if root is None:
            return None
        print(root.key)
        self.preOrder(root.left)
        self.preOrder(root.right)

    def inOrder(self,root):
        if root is None:
            return None

        self.inOrder(root.left)
        print(root.key)
        self.inOrder(root.right)

    def postOrder(self,root):
        if root is None:
            return None

        self.postOrder(root.left)
        self.postOrder(root.right)
        print(root.key)

 

以上是关于python 实现二叉树相关算法的主要内容,如果未能解决你的问题,请参考以下文章

数据结构——树的相关算法实现

不再惧怕!二叉树结构相关算法总结 | 原力计划

数据结构-二叉树遍历算法的应用

Java实现二叉树简单算法操作

JavaScript实现排序二叉树的相关算法

二叉树,堆详解