Python简单定义与使用二叉树示例


Posted in Python onMay 11, 2018

本文实例讲述了Python简单定义与使用二叉树的方法。分享给大家供大家参考,具体如下:

class BinaryTree:
  def __init__(self,rootObj):
    self.root = rootObj
    self.leftChild = None
    self.rightChild = None
  def insertLeft(self,newNode):
    if self.leftChild == None:
      self.leftChild = BinaryTree(newNode)
    else:
      print('The leftChild is not None.You can not insert')
  def insertRight(self,newNode):
    if self.rightChild == None:
      self.rightChild = BinaryTree(newNode)
    else:
      print('The rightChild is not None.You can not insert')

构建了一个简单的二叉树类,它的初始化函数,将传入的rootObj赋值给self.root,作为根节点,leftChild和rightChild都默认为None。

函数insertLeft为向二叉树的左子树赋值,若leftChild为空,则先构造一个BinaryTree(newNode),即实例化一个新的二叉树,然后将这棵二叉树赋值给原来的二叉树的leftChild。此处递归调用了BinaryTree这个类。

若不为空 则输出:The rightChild is not None.You can not insert

执行下述语句

r = BinaryTree('a')
print('root:',r.root,';','leftChild:',r.leftChild,';','rightChild:',r.rightChild)

输出

root: a ; leftChild: None ; rightChild: None

即我们构造了一颗二叉树,根节点为a,左右子树均为None

然后执行下述语句

r.insertLeft('b')
print('root:',r.root,';','leftChild:',r.leftChild,';','rightChild:',r.rightChild)
print('root:',r.root,';','leftChild.root:',r.leftChild.root,';','rightChild:',r.rightChild)

输出

root: a ; leftChild: <__main__.BinaryTree object at 0x000002431E4A0DA0> ; rightChild: None
root: a ; leftChild.root: b ; rightChild: None

我们向r插入了一个左节点,查看输出的第一句话,可以看到左节点其实也是一个BinaryTree,这是因为插入时,递归生成的。

第二句输出,可以查看左节点的值

最后执行

r.insertLeft('c')

输出:

The leftChild is not None.You can not insert

可以看到,我们无法再向左节点插入了,因为该节点已经有值了

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
python实现中文转换url编码的方法
Jun 14 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
windows10下python3.5 pip3安装图文教程
Apr 02 Python
Python简单定义与使用二叉树示例
May 11 Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 Python
Django model反向关联名称的方法
Dec 15 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
python输出pdf文档的实例
Feb 13 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
celery在python爬虫中定时操作实例讲解
Nov 27 Python
Python堆排序原理与实现方法详解
May 11 #Python
python 执行shell命令并将结果保存的实例
May 11 #Python
python 实现登录网页的操作方法
May 11 #Python
Python利用splinter实现浏览器自动化操作方法
May 11 #Python
Python爬虫信息输入及页面的切换方法
May 11 #Python
对python-3-print重定向输出的几种方法总结
May 11 #Python
利用Python如何实现数据驱动的接口自动化测试
May 11 #Python
You might like
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
php中count获取多维数组长度的方法
2014/11/03 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
jquery validate在ie8下的bug解决方法
2013/11/13 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
对Python w和w+权限的区别详解
2019/01/23 Python
利用python计算时间差(返回天数)
2019/09/07 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
大学毕业感言一句话
2014/02/06 职场文书
学生会辞职信
2015/03/02 职场文书
Python数据分析之绘图和可视化详解
2021/06/02 Python