python数据结构基础(6)

本节以二叉树为例学习一种比较复杂但是常见的数据结构----树,包括各种类型的二叉树及性质,如完全二叉树,平衡二叉树及二叉搜索树.

树的基本结构:

树是一种数据结构,他是由n个有限节点组成的一个具有层次关系的集合.二叉树则是每个节点最多有两个子树的树结构.二叉树一般具有以下性质.

1.二叉树的第k层上的节点数目最多为2的k-1次方.

2.深度为h的二叉树至多有2的h-1个节点.

3.包含n个节点的二叉树的高度至少为log2(n+1)

4.在任意一棵二叉树中,若叶子节点的个数为n0,度为2的节点数为n2,则n0=n2+1

下面介绍几种常见的二叉树:

满二叉树:如果一个二叉树的节点要么是叶子节点,要么他有两个子节点,那么这样的树就是满二叉树.

完全二叉树:如果一棵具有n个节点的深度为k的二叉树,他的每一个节点都与深度为k的满二叉树中编号为1~n的节点一一对应,那么这棵二叉树称为完全二叉树.

平衡二叉树:一棵空树或它的左右两个子树的高度差的绝对值不超过1,且左右两个子树都是一棵平衡二叉树

二叉搜素树:若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若它的右子树不空,则右子树上所有节点的值均大于他的根节点的值.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构:七种排序及总结

文章目录 排序一插入排序1直接插入排序2希尔排序二选择排序3直接选择排序4堆排序三 交换排序5冒泡排序6快速排序四 归并排序7归并排序源码 排序 我们数据结构常见的排序有四大种,四大种又分为七小种,如图所示 排序:所谓排序,就是…

【操作系统】基于环形队列的生产消费模型

目录 一、单生产单消费 1.环形队列的实现 (1) void P(sem_t &sem); (2) void V(sem_t &sem); (3) RingQueue() (4) ~RingQueue() (5) void Push(const T &in); (6) void Pop(T *out); 2.上层调用逻辑 二、多生产多消费 1.环形队列的实现 (1) RingQueue…

Linux下的WatchDog

看门狗🐕 看门狗简介 看门狗定时器(Watchdog Timer)是一种定时器,用于检测系统是否正常运行。如果系统在规定时间内没有向看门狗定时器发送复位信号,看门狗定时器就会产生复位信号,使系统复位。看门狗定时…

基于SpringBoot的速食零食商城+LW示例参考

1.项目介绍 功能模块:管理端(用户管理、账号管理、商品分类管理、商品信息管理、订单管理等),用户端(商品信息、登录注册、我的订单等)技术栈:SpringBoot,thymeleaf,MyB…

springboot020基于Java的免税商品优选购物商城设计与实现

🍅点赞收藏关注 → 文档最下方联系方式领取本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅 一 、设计说明 1…

认识物联网

新一代信息技术 物联网 物物相连的互联网,即物联网,又称传感器常见的传感器 • 温度传感器 • 压力传感器 • 声音传感器 • 02 • */08521 物联网概念 • 通过射频识别,红外传感器,全球定位系统GPS,激光扫描…

CODESYS可视化桌面屏保-动态气泡制作详细案例

#一个用于可视化(HMI)界面的动态屏保的详细制作案例程序# 前言: 在工控自动化设备上,为了防止由于人为误触发或操作引起的故障,通常在触摸屏(HMI)增加屏幕保护界面,然而随着PLC偏IT化的发展,在控制界面上的美观程度也逐渐向上位机或网页前端方面发展,本篇模仿Windows…

Java基础——反射

反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的Class,Class类用于表示.class文件(字节码)) 翻译成人话就是:反射技术,指的是加载类的字节码到内存,并以…

Node.js——文件上传

文件上传 插件:formidable,地址:https://www.npmjs.com/package/formidable,参考里面with Express.js部分。 html部分截图参考: 用express-generator生成的示例代码: const formidable require(formi…

PCA9632笔记

个人学习笔记,有错漏。具体请以官方数据手册为准 I2C地址 PCA9632使用I2C通信,I2C设备地址固定 发出START后输出访问设备地址(8bit版本地址固定) 0x62(7位地址) 地址最后一位为1读 为0写 8位写地址 0xC4…

【算法】递归+回溯+剪枝:78.子集

目录 1、题目链接 2、题目 3、解法(回溯剪枝) 4、代码 1、题目链接 78.子集(LeetCode) 2、题目 3、解法(回溯剪枝) 思路: 枚举子集(答案)的第一个数选谁,第二个数选谁,第三个数选谁&#x…

HCIP(7)-边界网关协议BGP基本配置(对等体peer,宣告network,引入import)

边界网关协议(Border Gateway Protocol,BGP)是一种用来在路由选择域之间交换网络层可达性信息(Network Layer Reachability Information,NLRI)的路由选择协议。由于不同的管理机构分别控制着他们各自的路由…

基于python的机器学习(二)—— 使用Scikit-learn库

目录 一、样本及样本划分 1.1 划分样本的方法 1.1.1 train_test_split()函数 1.1.2 时间序列划分 1.1.3 交叉验证 二、导入或创建数据集 2.1 导入Sklearn自带的样本数据集 2.2 利用Sklearn生成随机的数据集 2.3 读入自己创建的数据集 2.3.1 用Python直接读取文本文件…

Webpack5常用配置

1、序言 Webpack属于构建工具,可以将开发者代码转化成浏览器能识别的代码,让开发者专注代码实现,不用过多关注浏览器兼容性问题。 Webpack常见功能: 模块打包:Webpack 可以将项目中的所有模块(包括 JavaScr…

DFA算法实现敏感词过滤

DFA算法实现敏感词过滤 需求:检测一段文本中是否含有敏感词。 比如检测一段文本中是否含有:“滚蛋”,“滚蛋吧你”,“有病”, 可使用的方法有: 遍历敏感词,判断文本中是否含有这个敏感词。 …

索引基础篇

前言 通过本篇博客的学习,我希望大家可以了解到 “索引” 是为了提高数据的查询效率。 索引的介绍 索引是为了提高查询数据效率的数据结构 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着…

【设计模式系列】外观模式(十四)

一、什么是外观模式 外观模式(Facade Pattern)是一种结构型设计模式,其核心目的是为一个复杂的子系统提供一个简化的接口。这种模式通过定义一个外观类来封装子系统内复杂的操作,隐藏系统内部的复杂性,并向客户端提供…

哪些因素会影响 DC/DC 转换电路快速测试的性能?-纳米软件

DC/DC 转换电路在现代电子设备中起着至关重要的作用,其性能的快速准确测试对于确保电子系统的可靠性和稳定性至关重要。然而,有许多因素会影响 DC/DC 转换电路快速测试的性能。 电路复杂性和参数多样性 单片 DC/DC 转换器由于功能模块和参数复杂性&…

从0开始深度学习(25)——多输入多输出通道

之前我们都只研究了一个通道的情况(二值图、灰度图),但实际情况中很多是彩色图像,即有标准的RGB三通道图片,本节将更深入地研究具有多输入和多输出通道的卷积核。 1 多输入通道 当输入包含多个通道时,需要…

2025天津市考8日报名,建议收藏好报名流程

天津市2025年招考2043名公务员公告 35周岁以下(1988年11月至2006年11月期间出生),2025年应届硕士、博士研究生报考的,年龄可放宽到40周岁(1983年11月以后出生); 报名时间:2024年11月…