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++如何用非递归的算法去创建二叉树,有没有分层建立二叉树的方法