如何使用python实现二叉排序树
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,小编给大家分享一下如何使用python实现二叉排序树,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!方法一(粗暴)#二叉排序树class BTree(): def __init_
千家信息网最后更新 2025年02月03日如何使用python实现二叉排序树
小编给大家分享一下如何使用python实现二叉排序树,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
方法一(粗暴)
#二叉排序树class BTree(): def __init__(self,data): self.left = None self.right = None if type(data) == list: self.data = data[0] for d in data[1:]: self.insert(d) else: self.data = data def insert(self,data): bt = self while True: if data <= bt.data: if bt.left == None: bt.left = BTree(data) break else: bt = bt.left else: if bt.right == None: bt.right = BTree(data) break else: bt = bt.right def mid_order(self): res = [] stack = [] node = self while node or stack: while node: stack.append(node) node = node.left node = stack.pop() res.append(node.data) node = node.right return resdata = [5,1,2,3,6,8,9]bt = BTree(data)print(bt.mid_order())
方法二(递归)
class TreeNode(object): def __init__(self,data): self.data = data self.left = None self.right = Noneclass BinaryTree(object): def insert(self,root, node): if root is None: return node if node.data < root.data: root.left = self.insert(root.left, node) else: root.right = self.insert(root.right, node) return root def mid_order(self,root): node = root stack = [] res = [] while node or stack: while node: stack.append(node) node = node.left node = stack.pop() res.append(node.data) node = node.right return res data = [5,1,2,3,6,8,9]root = TreeNode(data[0])tree = BinaryTree()for i in data[1:]: tree.insert(root,TreeNode(i))print(tree.mid_order(root))
看完了这篇文章,相信你对"如何使用python实现二叉排序树"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
排序
方法
篇文章
粗暴
完了
更多
知识
行业
资讯
资讯频道
频道
递归
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
钢铁贸易软件开发
网民遭遇网络安全问题
深圳市带动美网络技术有限公司
南京市浦口中医院服务器中标公告
广州软件开发解决方案维护
创新网络技术推广好处
新时代网络技术的主要特点
上海互联网教育科技经验丰富
保障公民离不开网络安全
数据库双机热备技术
软件开发模型各自有什么特点
关于网络安全的认识错误的有哪些
网络安全宣传周活动效果
软件开发php教学视频
sql数据库成绩查询
软件开发需要规范端口吗
网络技术英语教学
怎么从数据库导出ddl
德国扑克软件开发
梅县软件开发公司
嘉定区新能源软件开发哪家好
邯郸市网络安全答题活动
kingscada 连接数据库
河南服务器机柜定制价格
手机与服务器怎样绑定
新能源整车控制软件开发
做h5页面开发用什么服务器好
数据库三级模式两级影像
web软件开发培训班
北京天实信互联网科技有限公司