python定义二叉树_用类定义二叉树

#用类定义二叉树

class BTree:

def

__init__(self,value):

#左儿子

self.left =

None

#节点值

self.data =

value

#右儿子

self.right

= None

#向左子树插入节点

def

insertLeft(self,value):

self.left =

BTree(value)

return

self.left

#向右子树插入节点

def insertRight(self,value):

self.right

= BTree(value)

return

self.right

#输出节点数据

def show(self):

print

self.data

#判断是否为叶子

def isLeaf(self):

return ((not self.left) and

(not self.right))

#得到右孩子

def getRightChild(self):

return self.right

#得到左孩子

def getLeftChild(self):

return self.left

#先序遍历

def preorder(self,node):

if node.data:

node.show()

if

node.left:

self.preorder(node.left)

if

node.right:

self.preorder(node.right)

#中序遍历

def inorder(self,node):

if node.data:

if

node.left:

self.inorder(node.left)

node.show()

if

node.right:

self.inorder(node.right)

#后序遍历

def postorder(self,node):

if node.data:

if

node.left:

self.postorder(node.left)

if

node.right:

self.postorder(node.right)

node.show()

#树高

def height(tree):

if tree ==

None:

return -1

else:

return 1 +

max(height(tree.left),height(tree.right))

if __name__ == '__main__':

Root = BTree('D')

B = Root.insertLeft('B')

E = Root.insertRight('E')

A = B.insertLeft('A')

C = B.insertRight('C')

G = E.insertRight('G')

F = G.insertLeft('F')

print

'***********************'

print 'Binary tree

pre-travels'

print

'***********************'

Root.preorder(Root)

print

'***********************'

print 'Binary tree

in-travels'

print

'***********************'

Root.inorder(Root)

print

'***********************'

print 'Binary tree

post-travels'

print

'***********************'

Root.postorder(Root)

print A.isLeaf()

B.getLeftChild().show()

B.getRightChild().show()

print height(Root)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html的字体红底颜色,红底黄字门头风水好吗 什么颜色招牌好

门头就是招牌,影响着一个店铺的生意好坏。而红底黄字的门头风水不好,一来是因为不容易辨识;二来是因为容易使人焦躁。而招牌最佳的颜色就是红底白字或白底黄字。一个店铺生意好不好,与自身的招牌是有着不可分割的关系的。我们除了…

python基础之名称空间和作用域、函数嵌套

一、名称空间 1、定义:存放名字与值的绑定关系 2、名称空间分为:内置名称空间、全局名称空间、局部名称空间 内置名称空间:python解释器自带的名字,python解释器启动就会生成 全局名称空间:文件级别定义的名字都会存放…

与微信、APP正面刚?三大运营商联合发布5G消息白皮书

来源:数据观综合4月8日,中国移动、中国电信、中国联通联合发布《5G消息白皮书》,宣布推出全新的信息交互服务——“5G消息”和生态建设构想,这意味着我国基础短信业务进入全面升级通道,传统短信将被5G消息(RCS业务)逐步…

Linux磁盘及文件系统(二)Linux下磁盘命名和分区

在为主机添加硬盘之前,首先需要了解Linux系统下对硬盘和分区的命令方法 一、磁盘命名 Linux下对SCSI和SATA设备是以sd命名的,第一个SCSI设备是sda,第二个是sdb....以此类推。一般主板上有两个SCSI接口,因此一共可以安装4个SCSI设备。主SCSI上…

tensorflow如何取平均_【他山之石】利用Tensorflow构建CNN图像多分类模型及图像参数、数据维度变化情况实例分析...

“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等&…

计算机涉及数学知识点,初二数学知识点归纳

无论你是带着欣喜还是遗憾进入了初二,一切都在这一刻重新开始。初二的数学学习开始啦!大家有没有什么好的学习方法来分享呢?知识点要学得明白,记得牢固。初二数学上册的知识点你知道吗?不知道的赶紧和沪江小编一起往下看吧。1 全等三角形的对应边、对应…

华为AR地图正式发布:每平方公里40亿三维信息点,1:1还原世界

来源:M数码4月8日晚,华为P40系列发布会上,余承东介绍了全新的华为AR地图,官方称实现了每平方公里40亿三维信息点,1:1还原真实世界。官方称华为AR地图是厘米级3D地图,每平方公里40亿三维信息点,1…

4_用户管理

用户怎么管理? -- 创建用户 - create user ‘用户名’’ ip地址’ indentified by ‘密码’; -- 删除用户 - drop user ‘用户名’’ ip地址’; -- 修改用户 -rename user ‘用户名’’ ip地址’ to ‘新用户’’ ip地址’; -- 修改密码 - set password for ‘用户…

船员能力评估计算机软件系统,船舶动力电力训练系统操作水平综合评估算法研究...

摘要:近年来随着航运事业的不断发展,航海专业技术人员的需求量持续增大,培养大量高质量的船员对于保证船舶航行的安全性和经济性具有重要意义。传统的实船操作训练评估方法受到资源有限、安全性较低以及人力评估的主观性等问题的影响,难以满足船舶对于大量优质船员的…

《全球创新观察》研究报告3月刊下发布

来源: 资本实验室大疫之下,全球产业格局有哪些变动?5G竞赛,又为哪些行业带来新风口?一起来看本期《全球创新观察》▼关于《全球创新观察》本报告是由国创会创新院(中国科学院国家创新与发展战略研究会创新驱…

python123字典统计排序1省份_python 列表、字典多排序问题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/justin051/article/details/84289189Python使用sorted函数来排序:l [2,1,3,5,7,3]print …

rem和css3的相关知识点

☆☆☆rem和css3的相关知识点☆☆☆ 一、 Web front-end development engineer rem是根据页面的根元素的font-size的一个相对的单位,即 html{ font-size:16px;//自定义根部元素的字体大小 } 比如我们在一个div中,如此写 div{ width:2rem; }那么我们的wid…

青岛农商银行计算机防病毒应用培训,青岛农商银行胶州支行多元化培训提升安防管理水平...

今年以来,青岛农商银行胶州支行面对当前严峻的社会治安形势,不等不靠,积极采取多元化、立体式培训模式,取得较好效果,有效提升了安防管理水平。请进来,抓好安保理念教育近期,该支行积极协调胶州…

简述div标签和span标签的不同_div与span区别及用法

DIV与SPAN区别及div与san用法篇接下来了解在divcss开发的时候在html网页制作,特别是标签运用中div和span的区别及用法。新手在使用web标准(div css)开发网页的时候,遇到第一个问题是div与span有什么区别,什么时候用div,什么时候用…

学自动化必知:20个传感器原理及应用动图

来源:工业机器人1.探伤仪2.氧浓度传感器3.电容传感器4.差压式液位计(负迁移)5.差压式液位计(无迁移)6.差压式液位计(正迁移)7.料位计(称重式)8.电位式传感器9.电子吊称10…

软件测试知识产权保护,一种软件测试方法及软件测试系统专利_专利申请于2017-09-07_专利查询 - 天眼查...

1. 一种软件测试方法,其特征在于,包括: 自动化测试工具执行数据生成自动化用例得到交易场景数据;其中,所述数据生成自 动化用例由自动化工具根据交易场景的数据编写得到; 使用预设数量的自动化用例和所述交易场景数据执…

pat1111-1120

1111 比较麻烦的最短路 #include<cmath> #include<map> #include<iostream> #include<cstring> #include<cstdio> #include<set> #include<vector> #include<queue> #include<stack> #include<algorithm> using n…

华为云占用443端口_关于XAMPP默认端口80和443被占用的问题

关于安装xampp-win32-1.8.1-VC9-installer.zip后启动时候报端口80和443被占用的问题解决xampp-win32-1.8.1-VC9-installer.zip下载地址http://pan.baidu.com/s/1pKLTKk71、打开cmd输入&#xff1a;netstat -ano找到红色1圈中位80和443对应的程序的PID2、cmd继续输入&#xff1a…

体育测试数据绘图软件,原创健身运动体育测试数据统计app界面

原创设计原创健身运动体育测试数据统计app...素材是用户QQ173F1B6A上传到我图网&#xff0c;素材大小为0.65 MB&#xff0c;素材的尺寸为1024px1780px&#xff0c;图片的编号是27962446&#xff0c;颜色模式为RGB&#xff0c;授权方式为VIP用户下载&#xff0c;成为我图网VIP用…

解析|一文读懂AGV的关键技术——激光SLAM与视觉SLAM的区别

来源&#xff1a;新机器视觉移动机器人(AGV)是工业机器人的一种。它由计算机控制&#xff0c;具有移动、自动导航、多传感器控制、网络交互等功能&#xff0c;在实际生产中最主要的用途是搬运&#xff0c;可以说只要有搬运需求的地方&#xff0c;就有移动机器人的应用可能。近年…