数据结构(6)二叉树

文章目录

  • 二叉树
    • 二叉树三种遍历
    • 二叉树知中及先或后序,求二叉树

二叉树

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

class Node(object):""""""def __init__(self, item):self.elem = itemself.lchild = Noneself.rchild = Noneclass Tree(object):"""二叉树"""def __init__(self):self.root = Nonedef add(self, item):node = Node(item)if self.root is None:self.root = nodereturnqueue = [self.root]while queue:cur_node = queue.pop(0)if cur_node.lchild is None:cur_node.lchild = nodereturnelse:queue.append(cur_node.lchild)if cur_node.rchild is None:cur_node.rchild = nodereturnelse:queue.append(cur_node.rchild)

二叉树三种遍历

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

 def breadth_travel(self):"""广度遍历"""if self.root is None:returnqueue = [self.root]while queue:cur_node = queue.pop(0)print(cur_node.elem, end=" ")if cur_node.lchild is not None:queue.append(cur_node.lchild)if cur_node.rchild is not None:queue.append(cur_node.rchild)def preorder(self, node):"""先序遍历"""if node is None:returnprint(node.elem, end=" ")self.preorder(node.lchild)self.preorder(node.rchild)def inorder(self, node):"""中序遍历"""if node is None:returnself.inorder(node.lchild)print(node.elem, end=" ")self.inorder(node.rchild)def postorder(self, node):"""后序遍历"""if node is None:returnself.postorder(node.lchild)self.postorder(node.rchild)print(node.elem, end=" ")

二叉树知中及先或后序,求二叉树

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

鼠标中间无法打开新标签_还记得鼠标有几个键?Win10环境鼠标中键的妙用

大家经常使用鼠标,但有多少人还能意识到,其实鼠标是有三个键的?除了常用的左键右键,鼠标中间的滚轮也可以按下去,然而鼠标的这个中键,却日常坐冷板凳,几乎被人所遗忘。其实,鼠标中键…

找不到问题的核心,你永远解决不了问题。

上学那会儿,我是个数学常拿60分的人(满分150分),我却喜欢做几何题。根据已知的条件,推导出所需的其他条件,所有需要的条件得出后,再根据正确的公式算出所求的值。这个不断求解的过程其实挺有意思…

浏览器访问pdf 的url怎么加密_怎么解决加密的pdf文件?

加密版的PDF文件我们每次打开时都需要输入密码才能进行阅读,而且一般不能直接进行复制和打印,这样会非常的麻烦。那如果我门想要解决这一问题呢就要将pdf文件的密码进行解除,可是如果是平民的我们不会解决怎么办呢?毕竟我们又不是…

Linux Storage入门学习

前言本文大量代码基于linux 0.11&#xff0c;因为早期linux的版本更加适合初学者入门。虽然代码比较早&#xff0c;但是不妨碍我们学习Linux Storage的精髓。一、hello world1.1 Demo#include<stdio.h> #include<unistd.h> #include<sys/types.h> #include&l…

地铁客流检测训练问题记录

一 报错&#xff1a; File "/home/jz/py-faster-rcnn/tools/../lib/datasets/pascal_voc.py", line 183, in _load_pascal_annotation tree ET.parse(filename) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1182, in parse tree.parse(sou…

记一次和摄像头的摩擦经历

因为时间的原因&#xff0c;这次点亮摄像头的时间特别短&#xff0c;昨天下午模组到公司&#xff0c;今天下午点亮。几个人一起调试&#xff0c;发现的问题也很多&#xff0c;今天下午发现有一个怀疑的问题&#xff0c;我马上驱车几十公里去模组厂调试&#xff0c;回来的时候&a…

声明为指针,定义为数组,声明为数组,定义为指针

之前写发的那篇指针和数组的文章&#xff0c;有网友评论觉得不是很舒服&#xff0c;我自己看了&#xff0c;觉得很不满意。所以想再写写&#xff0c;尽量把这个东西讲清楚。#定义为数组&#xff0c;声明为指针1.c中#include "stdio.h" char array[] "abcd"…

f2fs存储结构初探

前言学习文件系统的第一步&#xff0c;先搞清楚文件系统在设备上的存储结构&#xff0c;先来简单了解一下。F2FS空间布局图和描述选自《F2FS技术拆解》https://mp.weixin.qq.com/s/k1ibtWF_TRQi8wbqUGjMrgF2FS空间布局F2FS空间布局整个存储空间被划分为6个区域&#xff1a;超级…

net.conn read 判断数据读取完毕_高并发:缓存模式以及缓存的数据一致性

缓存由于其高性能&#xff0c;支持高并发的特性&#xff0c;在高并发的项目中不可或缺。被大家广泛使用的有Redis&#xff0c;Memcached等。本文主要探讨几种常见的缓存的读写模式&#xff0c;以及如何来保证缓存和数据库的数据一致性。这里大家可以关注一下我的个人专栏《PHP进…

PHP配置环境中开启GD库

下配置好的PHP环境中&#xff0c;GD库不像windows那样可以直接用&#xff0c;而是默认关闭&#xff0c;需要把它打开&#xff0c;去到php.ini文件中 找到php_gd2.dll把分号去掉即可。(注&#xff1a;GD库跟绘制二维码等有关) 转载于:https://www.cnblogs.com/mrszhou/p/7421161…

USB协议普及文

#目录#USB#USB On-The-Go Supplement#技术指标#机械和电气标准#编码方式#软件架构#端点#HCD#USB 封包格式#设备分类#USB接头#电源#Storage#人机接口设备&#xff08;HID&#xff09;通用串行总线(Universal Serial Bus, USB&#xff09;是连接外部设备的一个串口总线标准&#…

mysql jdbc驱动_JDBC认识与实践

一、什么是JDBC&#xff1f;Java数据库连接&#xff0c;&#xff08;Java Database Connectivity&#xff0c;简称JDBC&#xff09;是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口&#xff0c;提供了诸如查询和更新数据库中数据的方法。JDBC思维导图二、JDBC应…

画布实现拼图原理

1. 页面布局 1.1 bg: 背景提示图&#xff0c;使用半透明效果&#xff0c;移动图片后显示&#xff0c;层级最低&#xff0c;z-index:-1; 1.2 cvs: 当前画布&#xff0c;层级默认0&#xff1b; 1.3 content: 覆盖在画布之上 z-index:1; 1.3.1 currentCheckpoint: 显示当前关卡数…

晚归的码农老公

呃&#xff0c;我是本号主的贤内助&#xff0c;我们的儿子叫楠哥~由于疫情的影响&#xff0c;我们已经很久没有带楠楠回他外婆家玩了&#xff0c;只能用电话跟外婆聊聊家常。每一次通话结束&#xff0c;他外婆总会加问一句&#xff0c;启发回来了吧。我们每次的回答都是&#x…

Rockchip USB转485

#RS232 / RS485 简介#RS232#RS485#R485与RS232比较#开发#DTS配置#驱动开发#POSIX规范API#HAL层以上APP层#APK call JNI#APP#调试#log开启#RS232/RS485/RS422常见问题#RS232 / RS485 简介#RS232RS-232是美国电子工业联盟&#xff08;EIA&#xff09;制定的串行数据通信的接口标…

高嘌呤食物搜索引擎_“高嘌呤”的食物已发现,尿酸高的人,要尽量挑着吃!...

导语&#xff1a;在我们的生活中又出现了一种现象&#xff0c;越来越频发&#xff0c;也是越来越倾向于年轻化&#xff0c;那么就是高尿酸&#xff0c;现在高尿酸已经被列为了我们国家的第四高&#xff0c;身体内的嘌呤含量是一部分&#xff0c;那么另一部分也是来源于我们平时…

罗老师带货了

相对比其他事情&#xff0c;我对罗老师带货很感兴趣&#xff0c;也许这样说&#xff0c;我对罗老师这个人比较感兴趣。罗老师是一个经过大风大浪的男人&#xff0c;经过了各种风雨&#xff0c;终于找到自己的位置&#xff0c;也决定在这个位置上发光发热了。我觉得他会像冯提莫…

【Linux笔记】LED驱动程序

前言 上一篇我们分享了字符设备驱动框架&#xff1a;【Linux笔记】驱动基础篇&#xff0c;当时分享的是hello驱动程序。学STM32我们从点灯开始&#xff0c;学Linux驱动我们自然也要点个灯来玩玩&#xff0c;尽量在从这些基础例程中榨取知识&#xff0c;细抠、细抠&#xff0c;为…

oracle trigger 延迟执行_一文详解Spring任务执行和调度

一、概述Spring框架分别使用TaskExecutor和TaskScheduler接口提供异步执行和任务调度的抽象。Spring还提供了这些接口的实现&#xff0c;这些接口支持线程池或将其委托给应用服务器环境中的CommonJ。二、TaskExecutorSpring 2.0 开始引入的新的抽像。Executors 是线程池的Java …

数据库(2)

文章目录数据表操作完整性约束AUTO_INCREMWNTNOT NULL非空唯一性约束UNIQUE KEY&#xff08;KEY可省略&#xff09;修改表结构的方式修改表名添加字段删除字段修改字段添加默认值删除默认值添加主键删除主键添加唯一删除唯一修改表的存储引擎设置自增长的值删除数据表DML插入数…