二叉树是数据结构中非常重要的一种数据结构,在用Python搭建决策树模型时,发现需要先实现多叉树,于是回过头来,看了遍二叉树,有了如下的成果。
我先构建了这样一个节点型数据,他有这样几个属性和功能:
(1)属性:名称,数据,左子节点,右子节点,父节点,子节点个数(度);
(2)方法:添加子节点和删除子节点,并且其子节点个数随之变化,子节点的父节点变成该节点。
我需要使我的二叉树有这样功能:
(1)属性:深度、根节点、所有可插节点字典{名称:数据}、所有节点字典{名称:数据}
(2)方法:
- 利用现有的一个节点或一个有多层子节点的节点来生成树结构;
- 随时计算树的深度;
- 利用树的某一个节点生成子树;
- 在树的某一个可插入节点上插入或删除子树;
- 打印树结构
下面上代码
#-*-coding:utf-8-*-
'''
created by zwg in 2016-10-7
'''
import copy
class node:
def __init__(self,name,data):
self.data=data
self.name=name
self.Rchild=None
self.Lchild=None
self.child_number=0
self.parent=None
def add_Rchild(self,node):
if self.Rchild is not None:
self.Rchild=node
else:
self.Rchild=node
self.child_number+=1
node.set_parent(self)
def drop_Rchild(self):
self.Rchild=None