#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/5/5 上午10:34 # @Author : MXi4oyu # @Site : # @File : PyBtreeSort.py # @Software: PyCharm class PyBtree: def __init__(self,value): self.left = None #左节点 self.data = value #节点值 self.right = None #右节点 def insertLeft(self,value): self.left= PyBtree(value) return self.left def insertRight(self,value): self.right = PyBtree(value) return self.right def show(self): print(self.data) #中序遍历:如果二叉树不为空,则先访问左子树,然后访问根节点,最后访问右子树 def inorder(node): if node.data: if node.left: inorder(node.left) node.show() if node.right: inorder(node.right) #中序遍历,先遍历右子树 def rinorder(node): if node.data: if node.right: rinorder(node.right) node.show() if node.left: rinorder(node.left) def insert(node,value): if value > node.data: if node.right: insert(node.right,value) else: node.insertRight(value) else: if node.left: insert(node.left,value) else: node.insertLeft(value) if __name__=='__main__': blist=[3,6,7,2,1,0,23,9,8,4] Root=PyBtree(blist[0]) node = Root for i in range(1,len(blist)): insert(Root,blist[i]) print("******从小到大排序******") inorder(Root) print("******从大到小排序******") rinorder(Root)
二叉树排序
猜你喜欢
转载自blog.csdn.net/mypc2010/article/details/80203719
今日推荐
周排行