python实现mysql二叉树_Python 二叉树实现

一时失言乱红尘 2022-10-31 15:54 241阅读 0赞

#二叉树实现

class Node():

def __init__(self,item):

self.elem = item

self.lchild = None

self.rchild = None

class Tree():

def __init__(self):

self.root = None

def add(self,item):

node = Node(item)

if self.root is None:

self.root = node

return

queue = []

queue.append(self.root)

#寻找空节点放入目标节点

while queue:

cur_node = queue.pop(0)

if cur_node.lchild is None:

cur_node.lchild = node

return

else:

queue.append(cur_node.lchild)

if cur_node.rchild is None:

cur_node.rchild = node

return

else:

queue.append(cur_node.rchild)

#广度遍历

def breadth_travel(self):

if self.root is None:

return

queue = [self.root]

while queue:

cur_node = queue.pop(0)

print(cur_node.elem)

if cur_node.lchild is not None:

queue.append(cur_node.lchild)

if cur_node.rchild is not None:

queue.append(cur_node.rchild)

#前序遍历,根,左子树,右子树

def preorder(self,node):

if node is None:

return

print(node.elem,end = ‘ ‘)

self.preorder(node.lchild)

self.preorder(node.rchild)

#中序遍历,左子树,根,右子树

def inorder(self,node):

if node is None:

return

self.inorder(node.lchild)

print(node.elem,end = ‘ ‘)

self.inorder(node.rchild)

#后序遍历,左子树,右子树,根

def postorder(self,node):

if node is None:

return

self.postorder(node.lchild)

self.postorder(node.rchild)

print(node.elem,end = ‘ ‘)

发表评论

表情:
评论列表 (有 0 条评论,241人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python实现的遍历

    遍历二叉树就是以一定的规则将二叉树中的结点排列成一个线性序列,从而得到二叉树节点的各种遍历序列。其实质就是对一个非线性结构进行线性操作,使在这个序列中,除了第一个和最后一个结点

    相关 Python实现

    树的定义与基本术语   树型结构是一类重要的非线性数据结构,其中以树和二叉树最为常用,是以分支关系定义的层次结构。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组