python--使用递归的方式建立二叉树

Posted aguncn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--使用递归的方式建立二叉树相关的知识,希望对你有一定的参考价值。

树和图的数据结构,就很有意思啦。

技术图片

# coding = utf-8


class BinaryTree:
    def __init__(self, root_obj):
        self.key = root_obj
        self.left_child = None
        self.right_child = None

    def insert_left(self, new_node):
        node = BinaryTree(new_node)
        if self.left_child is None:
            self.left_child = node
        else:
            node.left_child = self.left_child
            self.left_child = node

    def insert_right(self, new_node):
        node = BinaryTree(new_node)
        if self.right_child is None:
            self.right_child = node
        else:
            node.right_child = self.right_child
            self.right_child = node

    def get_right_child(self):
        return self.right_child

    def get_left_child(self):
        return self.left_child

    def set_root_val(self, obj):
        self.key = obj

    def get_root_val(self):
        return self.key


root = BinaryTree(‘a‘)
print(root.get_root_val())
print(root.get_left_child())
root.insert_left(‘b‘)
print(root.get_left_child())
print(root.get_left_child().get_root_val())
root.insert_right(‘c‘)
print(root.get_right_child())
print(root.get_right_child().get_root_val())
root.get_right_child().set_root_val(‘hello‘)
print(root.get_right_child().get_root_val())

  

C:UsersSahara.virtualenvs	estScriptspython.exe C:/Users/Sahara/PycharmProjects/test/python_search.py
a
None
<__main__.BinaryTree object at 0x00000000024139B0>
b
<__main__.BinaryTree object at 0x00000000024139E8>
c
hello

Process finished with exit code 0

  

以上是关于python--使用递归的方式建立二叉树的主要内容,如果未能解决你的问题,请参考以下文章

非递归建立二叉树

二叉树的建立及递归遍历

c++如何用非递归的算法去创建二叉树,有没有分层建立二叉树的方法

关于二叉树,高分!

建立二叉树的二叉链表表示,实现二叉树的先序、中序、后序和按层次遍历,统计并输出结点个数。

二叉树的前中后序递归和非递归遍历操作代码