用python创建和遍历二叉树的方法是什么
Admin 2021-05-21 群英技术资讯 870 次浏览
python怎么创建与遍历二叉树?对于二叉树内容,还是比较重要的,因此下面给大家分享使用递归的方式来实现python创建和遍历二叉树,需要的朋友可以参考学习。
树型结构是一类重要的非线性数据结构,其中以树和二叉树最为常用,是以分支关系定义的层次结构。树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构;在计算机领域中也有广泛应用,如在编译程序中,可用树来表示源程序的语法结构;在数据库系统中,树型结构也是信息的重要组织形式之一;在机器学习中,决策树,随机森林,GBDT等是常见的树模型。
树(Tree)是个结点的有限集。在任意一棵树中:(1)有且仅有一个特定的称为根(Root)的节点;(2)当时,其余节点可分为个互不相交的有限集其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。
图1 树型结构
python创建和遍历二叉树,可以使用递归的方式,源代码如下:
#!/usr/bin/python class node(): def __init__(self,k=None,l=None,r=None): self.key=k; self.left=l; self.right=r; def create(root): a=raw_input('enter a key:'); if a is '#': root=None; else: root=node(k=a); root.left=create(root.left); root.right=create(root.right); return root; def preorder(root): #前序遍历 if root is None: return ; else : print root.key; preorder(root.left); preorder(root.right); def inorder(root): #中序遍历 if root is None: return ; else: inorder(root.left); print root.key; inorder(root.right); def postorder(root): # 后序遍历 if root is None: return ; else : postorder(root.left); postorder(root.right); print root.key; root=None; # 测试代码 root=create(root); preorder(root); inorder(root); postorder(root);
运行程序,建立二叉树如图:
前序遍历结果为: a b c d e f
中序遍历结果为:c b d a f e
后序遍历结果为:c d b f e a
关于python如何实现二叉树创建与遍历的介绍就到这,上文有具体代码,需要的朋友可以参考,希望对大家了解二叉树有帮助,更多python实现二叉树创建与遍历的内容,可以关注其他文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了Pytorch搭建YoloV4目标检测平台实现源码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
这篇文章主要介绍了通过使用OpenCV进行基于深度学习的对象检测以及使用OpenCV检测视频,文中的示例代码讲解详细,需要的可以参考一下
这篇文章主要为大家介绍了对比分析BN和dropout在预测和训练时区别,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
这篇文章给大家分享的是Python的flask框架中转换器的使用,下文介绍了默认转换器和自定义转换器的使用,对大家会有一定的参考价值,有需要的朋友可以了解看看,接下来就跟随小编一起学习一下吧。
用Python怎样将日历与时间转换,方法和代码是什么?有不少朋友对此感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考,下面我们一起来了解一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008