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基于pillow判断图片完整性的方法
Sep 18 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
Oct 07 Python
Python使用getpass库读取密码的示例
Oct 10 Python
Python 列表理解及使用方法
Oct 27 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
python3 pillow模块实现简单验证码
Oct 31 Python
python多线程高级锁condition简单用法示例
Nov 07 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 Python
python pandas移动窗口函数rolling的用法
Feb 29 Python
next在python中返回迭代器的实例方法
Dec 15 Python
用python-webdriver实现自动填表的示例代码
Jan 13 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
PHP Zip解压 文件在线解压缩的函数代码
2010/05/26 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
php 判断字符串编码是utf-8 或gb2312实例
2016/11/01 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
解决laravel session失效的问题
2019/10/14 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
初学Jquery插件制作 在SageCRM的查询屏幕隐藏部分行的功能
2011/12/26 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
javascript 中的继承实例详解
2017/05/05 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Eclipse + Python 的安装与配置流程
2013/03/05 Python
python操作xml文件示例
2014/04/07 Python
Python操作列表之List.insert()方法的使用
2015/05/20 Python
详解K-means算法在Python中的实现
2017/12/05 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
tensorflow训练中出现nan问题的解决
2018/02/10 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
不知道这5种下划线的含义,你就不算真的会Python!
2018/10/09 Python
python检测IP地址变化并触发事件
2018/12/26 Python
详解django2中关于时间处理策略
2019/03/06 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
马来西亚网上购物平台:ezbuy
2018/02/13 全球购物
自学考试自我鉴定范文
2013/09/26 职场文书
学校师德承诺书
2014/05/23 职场文书
娱乐节目策划方案
2014/06/10 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
行政二审代理词
2015/05/25 职场文书
Nginx流量拷贝ngx_http_mirror_module模块使用方法详解
2022/04/07 Servers