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 help()函数用法详解
Mar 11 Python
python实现计算倒数的方法
Jul 11 Python
python+matplotlib演示电偶极子实例代码
Jan 12 Python
python中如何使用分步式进程计算详解
Mar 22 Python
在Python函数中输入任意数量参数的实例
Jul 16 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
python 字典item与iteritems的区别详解
Apr 25 Python
Python描述数据结构学习之哈夫曼树篇
Sep 07 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 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
Terran剧情介绍
2020/03/14 星际争霸
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
javascript 数组操作详解
2015/01/29 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
答题辅助python代码实现
2018/01/16 Python
python读取和保存视频文件
2018/04/16 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
python 非线性规划方式(scipy.optimize.minimize)
2020/02/11 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
Ancheer官方户外和运动商店:销售电动自行车
2019/08/07 全球购物
快餐店的创业计划书范文
2014/01/29 职场文书
校运会入场式解说词
2014/02/10 职场文书
闭幕式主持词
2014/04/02 职场文书
授权委托书怎么写
2014/04/03 职场文书
集体生日活动方案
2014/08/18 职场文书
护士2015年终工作总结
2015/04/29 职场文书
初中毕业生感言
2015/07/31 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers