python二叉树,层序添加节点,层序遍历节点,二叉搜索树,前序遍历
2021/12/4 11:16:44
本文主要是介绍python二叉树,层序添加节点,层序遍历节点,二叉搜索树,前序遍历,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
class Node: def __init__(self,value): self.value = value self.left = None self.right = None def add_by_order(self,value): """ 层序添加节点,从上到下,从左到右依次添加节点。 :param value: 要添加的节点的值 :return: None """ queue = [self] while queue: current = queue.pop(0) if current.left: queue.append(current.left) else: current.left = Node(value) return if current.right: queue.append(current.right) else: current.right = Node(value) return def add_by_compare(self,value): """ 二叉搜索树:比根节点大的放左边,其余放右边。 :param value:要添加的值 :return:None """ if value > self.value: if self.left is None: self.left = Node(value) else: self.left.add_by_compare(value) if value <= self.value: if self.right is None: self.right = Node(value) else: self.right.add_by_compare(value) def print_by_order(self): """ 层序遍历一棵树,从上到下,从左到右打印节点 :return: 打印节点的值 """ queue = [self] while queue: current = queue.pop(0) print(current.value) if current.left: queue.append(current.left) if current.right: queue.append(current.right) def print_by_qianxu(self): """ 前序遍历。先打印根节点,再打印左树,再打印右树。 :return: """ print(self.value) if self.left: self.left.print_by_qianxu() if self.right: self.right.print_by_qianxu() t = [11,9,12,11,10,8] root = Node(10) for i in t: root.add_by_compare(i) root.print_by_order() print('-------------') root.print_by_qianxu()
这篇关于python二叉树,层序添加节点,层序遍历节点,二叉搜索树,前序遍历的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-28Python编程基础教程
- 2024-12-27Python编程入门指南
- 2024-12-27Python编程基础
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南