二叉树
用python实现二叉树相关功能,有助于理解二叉树(这里实现的均为二叉查找树功能)
概念
二叉树是指计算机科学中每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。
python实现二叉树节点
为每个节点定义right,left(对应父节点向下连接的左右孩子节点),value(承载二叉树对应节点的值),parent(对应孩子节点向上连接的父节点)
class Node:
def __init__(self,data,parent):
self.value = data
self.left = None
self.right = None
self.parent = parent
def __repr__(self):
if self.left is None and self.right is None:
return str(self.value)
return pformat({
"%s" % (self.value): (self.left, self.right)}, indent=1)
python实现二叉树
定义根节点root,然后就可以通过定义的子节点相互连接,实现二叉树
class BST:
def __init__(self, root = None):
self.root = root
二叉树相关操作
插入节点
二叉树的插入,根据二叉树的定义,左孩子节点的值要小于本身的值,右孩子的值大于本身的值。
依次插入8, 3, 6, 1, 10, 14, 13, 4, 7即可形成下图所示二叉树
8
/ \
3 10
/ \ \
1 6 14
/ \ /
4 7 13
python实现插入节点
先从根节点判断,如果根节点为空,则直接定义插入的节点为根节点;如不为空