python实现递归二叉树排序

    技术2026-01-09  12

    二叉树排序简介

    二叉树排序是比较有意思的一种排序方法,而且也便于操作。二叉树的排序过程主要是二叉树的建立和遍历的过程。例如有一组数据"3,5,7,20,43,2,15,30",则二叉树的建立过程如下:

    首先将第一个数据3放入根节点将数据5与根节点中的数据3比较,由5大于3,则将5放入3的右子树中将数据7与根节点中的数据3比较,由于7大于3,则应将7放入3的右子树中,由于3已经有右儿子5,则将7与5进行比较,因为7大于5,应将7放入5的右子树中将数据20与根节点3进行比较,由于20大于3,则应将20放入3的右子树,重复比较,最终将20放到7的右子树中;将数据43与树中的节点值进行比较,最终将其放入20的右子树中以此类推与比较…

    下面用例子作为真实效果模拟

    例子:python用列表实现二叉树排序

    实验效果: 实验代码:

    # -*- coding:utf-8 -*- class BTree: def __init__(self, value): self.left = None self.data = value self.right = None def insertLeft(self, value): self.left = BTree(value) return self.left def insertRight(self, value): self.right = BTree(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 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__': l = [3,5,7,20,43,2,15,30] Root = BTree(l[0]) node = Root for i in range(1,len(l)): insert(Root,l[i]) print('*************************') print(" 从小到大") print('*************************') inorder(Root)
    Processed: 0.030, SQL: 9