Python实现的二叉树结构示例

一、二叉树简介

二叉树是一类比较特殊的树,在二叉树中每个节点最多只有两个孩子,分为左孩子和右孩子,相对于树而言,二叉树的构建和使用都要简单得多。任何一棵树,都可以通过变换转换成一颗二叉树。
Python 中,二叉树的构建和树一样,可以使用列表或者类的方式。由于二叉树中的节点具
有确定的儿子数,因此,使用类的方式更为简便。

二、示例代码所用的二叉树图:

三、示例代码:

		
class BinaryTree:			        # 创建一个二叉树节点的类,节点中定义三个属性,def __init__(self, elem):		# 分别为 elem 本身的值,lchild 左孩子和rchild 右孩子self.elem = elemself.lchild = Noneself.rchild = Nonedef insert_left(self, elem):            	  # 向左子树插入节点self.lchild = BinaryTree(elem)return self.lchilddef insert_right(self, elem):            	  # 向右子树插入节点self.rchild = BinaryTree(elem)return self.rchilddef show(self):                             	# 输出节点数据print(self.elem)if __name__ == '__main__':Root = BinaryTree('Root')a = Root.insert_left('A')c = a.insert_left('C')d = a.insert_right('D')f = d.insert_left('F')g = d.insert_right('G')b = Root.insert_right('B')e = b.insert_right('E')Root.show()Root.lchild.show()Root.rchild.show()a = Root.lchilda.lchild.show()Root.lchild.rchild.show()

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

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

相关文章

数据结构实验任务七:基于广度优先搜索的六度空间理论验证

问题描述 “六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论 可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是 说,最多通过五个人你就能够认识任何一个陌生人。”假如给你一个社交网络图&#xf…

解决:AttributeError: module ‘copy’ has no attribute ‘copy’

解决:AttributeError: module ‘copy’ has no attribute ‘copy’ 文章目录 解决:AttributeError: module copy has no attribute copy背景报错问题报错翻译报错位置代码报错原因解决方法方法一方法二方法三今天的分享就到此结束了 背景 在使用之前的代…

谷歌正式发布最强 AI 模型 Gemini

2023年12月6日,谷歌公司宣布推出其被认为是规模最大、功能最强大的人工智能模型 Gemini。 Gemini将分为三个不同的套件:Gemini Ultra、Gemini Pro和Gemini Nano。 Gemini Ultra被认为具备最强大的能力,Gemini Pro则可扩展至多任务&#x…

RTL编码(2)——模块优化

一、顶层模块的划分 在RTL编码中,我们是以模块为单位进行设计的,模块之间的连接和嵌套关系对于电路结构有着很大的影响。一个好的系统设计中,我们应该使得模块尽量满足以下两个标准: 顶层模块扁平化内部模块层次化 1.1 顶层模块扁…

Python+requests+unittest+excel实现接口自动化测试框架

在刚刚进入测试行业的时候,最开始也是做功能测试,我想很多伙伴和我一样,觉得自动化测试都很高端,很神秘。迫不及待的想去学习作自动化测试。 以前比较常用数据库python做自动化,后面发现excel个人觉得更加适合&#x…

22 查找众数及中位数

题目描述 众数是指一组数据中出现次数量多的那个数,众数可以是多个。 中位数9是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就…

Jest与typescript单元测试

文章目录 前言安装配置.vscode/launch.jsonjest.config.tsts.config.ts 测试例子 前言 简单记录一下vscode里跑Jest单元测试。 安装 yarn add -D ts-jest ts-node types/jest jest 配置 .vscode/launch.json {"version": "0.2.0","configurations…

【文件上传系列】No.0 利用 FormData 实现文件上传、监控网路速度和上传进度(原生前端,Koa 后端)

利用 FormData 实现文件上传 基础功能:上传文件 演示如下: 概括流程: 前端:把文件数据获取并 append 到 FormData 对象中后端:通过 ctx.request.files 对象拿到二进制数据,获得 node 暂存的文件路径 前端…

docker网络【重点】

一、网络知识 1、桥接模式:用于链接两个不同网络段的设备,是共享通信的一种方式 2、桥接设备:工作在OSI模型的第二层(数据链路层)。根据MAC地址转发数据帧,类似于交换机,只能转发同一网段&…

C++11:lambda表达式(对各个参数详细说明+注意事项+使用案例+探究底层)

目录 一、lambda表达式语法 1.lambda表达式书写格式 2. lambda表达式各部分说明 3.捕获列表说明 二、lambda表达式的一些使用案列 1.借助auto将lambda表达式赋值给一个变量来直接调用。 2.对于类似于sort对自定义类型排序等情况时使用lambda可简化代码 以前我们对自定义…

【SpringBoot】yml配置文件注释中文乱码

错误展示 搭了一个环境,一启动项目,yml文件中文全乱码了 解决措施 按如图顺序操作 结果 再次启动项目,乱码已解决!

Spring IoC和DI

目录 一. Spring是什么 IoC DI 二. IoC&DI的使用 IoC 1.Controller(控制器存储) 2.Service(服务存储) 3.Repository(仓库存储) 4.Componemt(组件存储) 5.Configuratio…