【树】树、二叉树的基础知识

news2024/11/19 1:29:28

定义:

树是n(n≥0)个结点的 有限集合T。当 n=0时,称为 空树;当n>0时,该集合满足如下条件:
(1) 其中必有一个称为根(root)的特定结点,它 没有直接前驱,但有零个或多个直接后继。
(2) 其余n-1个结点可以划分成m(m≥0)个 互不相交的有限集T1,T2,T3,…,Tm,其中Ti又是一棵树,称为根root的子树。每棵子树的根结点 有且仅有一个直接前驱,但有零个或多个直接后继。

这是一个递归的定义,树里面还有子树,树型结构是一个一对多的结构。

基本术语:

结点的度(Degree):结点拥有的子树数量; D的度为3

叶子(Left)/终端结点:度为0的结点;KLFGMIJ

分支结点/非终端接结点:度不为0的结点;

树的度:树内各结点的度的最大值;3

孩子(Child):结点的子树的根为该结点的孩子(结点的直接后驱);BCD是A的孩子

双亲结点(Parent):一个结点的直接前驱; A是BCD的双亲

兄弟结点(Sibling):同一个双亲的孩子之间互称; BCD

堂兄弟:其双亲在同一层的结点; KM

祖先:从根到该结点所经分支上的所有结点; E的祖先为AB

子孙:以某结点为根的子树中的任一结点; B的子孙为EK

层次:从根开始定义,根为第一层,根的孩子为第二层。(也可以把根看成第0层)

深度:根的深度为0,其他结点深度为从根到此结点的唯一路径长。

森林:m(m>=0)棵互不相交的树的集合

无序树/自由树:树中任意结点的子结点之间没有顺序关系。反之为有序树。

二叉树

定义:

我们把满足以下两个条件的树形结构叫做二叉树(Binary Tree):
(1)每个结点的度都不大于2;
(2)每个结点的孩子结点次序不能任意颠倒。

一个二叉树中的每个结点只能含有0、1或2个孩子,而且每个孩子有左右之分。位于左边的孩子叫做左孩子,位于右边的孩子叫做右孩子。

性质:

若二叉树的层次从0开始,则在二叉树的第i层最多有2^i个结点

高度为k的二叉树最多有2^(k+1)-1个结点。(k>=-1)

若二叉树叶结点的个数为n0,度为2的结点个数为n2,则n0 = n2+1;

满二叉树:每一层的结点都达到最大个数,若每层从右向左依次缺省,就为完全二叉树

具有n个结点的完全二叉树的高度为|log(n+1)|-1,向上取整

二叉树的存储

顺序存储

数组存放树都是存放的完全二叉树,当有空时也必须存东西,可以用其他符号表示空,因为数组存放的是一个逻辑关系。

链式存储

静态结构

数据+关系

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

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

相关文章

基于javaweb jsp+servlet学生宿舍管理系统

基于javaweb jspservlet学生宿舍管理系统 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 …

Mysql入门技能树-时间日期函数(一)-练习篇

DAY Joe 需要从日期中提取当天是几号,下列哪些函数可以实现这个功能? 1.DAY 2.DAYOFMONTH 3.DAYOFYEAR 4.TO_DAYS 答案是:C SELECT DAY(2023-02-14)SELECT DAYOFMONTH(2023-02-14)结果都是14 -- 返回 d 是一年中的第几天,范围…

【学习笔记】【Pytorch】九、非线性激活

【学习笔记】【Pytorch】九、非线性激活学习地址主要内容一、前言二、Pytorch的非线性激活三、nn.ReLU类的使用1.使用说明2.代码实现二、nn.Sigmoid类的使用1.使用说明2.代码实现学习地址 PyTorch深度学习快速入门教程【小土堆】. 主要内容 一、前言 我们知道人类大脑中的神…

【RabbitMQ】基础篇,学习纪录+笔记

目录 一.介绍 1.1MQ概述 1.2MQ优势和劣势 1.3常见的 MQ 产品 1.4RabbitMQ简介 1.5RabbitMQ中的相关概念 1.6RabbitMQ的安装 二.快速入门 2.1入门程序 2.2工作模式 2.2.1Work queues 工作队列模式 2.2.2Pub/Sub 订阅模式 2.2.3Routing 路由模式 2.2.4Topics 通配符…

vite 4.0 来了,带你手撕 create-vite 源码

通过本文你将了解到以下内容: 1,npm create 具体执行流程2,minimist、prompts、kolorist三个库3,create-vite 的源码分析 vite源码下载: //复制一份vite源码到自己的本地 git clone https://github.com/vitejs/vit…

抗击洪涝灾害,河道水雨情动态在线监测解决方案

一、项目背景我国是个多山的国家且位于东南季风区,降雨分布广泛还分布不均匀,这样一来使汛期高度集中。导致很多沿海城市以及临近河道的地区面临着河道决堤的威胁如何实时监测河道雨水情动态成了让人头疼的问题。在2022年1月,发改委、水利部在…

基于jsp+mysql+Spring的SpringBoot招聘网站项目(完整源码+sql)

基于jspmysqlSpring的SpringBoot招聘网站项目(完整源码sql)主要实现了管理员登录,简历管理,问答管理,职位管理,用户管理,职位申请进度更新,查看简历 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀…

Exchanges

文章目录ExchangesExchanges的类型FanoutDirectTopicExchanges (交换机)RabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。 Exchanges的类型 直接(direct),主题(topic),标题(headers),扇出(fanout)&…

硅烷聚乙二醇硅烷,Silane-PEG-Silane同官能团科研试剂,化学结构式

产品名称:硅烷聚乙二醇硅烷,双硅烷聚乙二醇 中文别名:硅烷PEG硅烷,双硅烷聚乙二醇 英文名称:Silane-PEG-Silane 分子量:1k,2k,3.4k,5k,10k,20k…

面对一堆烂代码,重构,还是重新开发?

hello,大家好,我是张张,「架构精进之路」公号作者。 1、烂代码的形成 写烂代码很容易,但代码写成一坨屎,还能正常运行,那就要有点水平才行。 尤其是一些经验不足的新手,根本不在乎代码质量的重要…

小年 —— 送日历福利啦!(acwing)

acwing每日一题集日历除夕夜瓜分10000ac币啦! 手慢就没了┗|`O′|┛ 嗷~~ 上次在acwing上面留言送日历,结果送着送着,连老本都给送没了,这波集齐了把其他的也给发出来了 AcWing【集日历瓜分10000AC币活动】赠送1月日历…

基于Java SSM springboot健身管理系统设计和实现

基于Java SSM springboot健身管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联…

Uniswap v3 详解(四):交易手续费

以普通用户的视角来看,对比 Uniswap v2,Uniswap v3 在手续费方面做了如下改动: 添加流动性时,手续费可以有 3个级别供选择:0.05%, 0.3% 和 1%,未来可以通过治理加入更多可选的手续费率Uniswap v2 中手续费…

《啊哈算法》第三章--枚举很暴力

从无到有学算法(看漫画学算法) (๑•̀ㅂ•́)و✧ 爱要坦荡荡 - 萧潇 - 单曲 - 网易云音乐 一,坑爹的奥数 枚举算法又叫穷举算法,非常的暴力,它的基本思想是“有序地去尝试每一种可能” 题目1 □3 x 6528 3□ x …

【JavaEE】网络初识之网络通信基础

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【JavaEE】 ✈️✈️本篇内容:网络初识之网络通信基础。 🚀🚀代码存放仓库gitee:JavaEE初阶代码存放! ⛵⛵作者简介…

Uniswap v3 详解(二):创建交易对/提供流动性

前文已经说过 Uniswap v3 的代码架构。一般来说,用户的操作都是从 uniswap-v3-periphery 中的合约开始。 创建交易对 创建交易对的调用流程如下: 用户首先调用 NonfungiblePositionManager 合约的 createAndInitializePoolIfNecessary 方法创建交易对&…

【软件测试】软件测试分类

1. 按照测试对象划分 界面测试 界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是 否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性&…

U3751频谱分析仪

18320918653 U3751 频谱分析仪爱德万U3751特点: 频率范围:9kHz~8GHz 大输入电平:30dBm RBW:300Hz~3MHz 体积小,重量轻(5.6公斤),测量速度快 户外量测:W-CDMA&#xff…

unity日记10(无头盔开发vr XR Device Simulator操作说明| 模之屋模型导入unity )

目录 XR Device Simulator配置参考视频 XR Device Simulator操作方法参考视频 模之屋模型导入unity参考视频 XR Device Simulator操作方法(个人心得) 1.摄像机 1.摄像机左右移动 右键移动鼠标 2.摄像机前后移动 右键滚动滚轮 3.摄像…

Vulnhub之HACKABLE: II

1.信息收集 使用arp-scan扫描存活网段 使用nmap对192.168.239.126进行端口扫描,发现存在21(可匿名登录)、22、80端口 2.漏洞发现 使用ftp 192.168.239.126进行匿名登录,注意:anonymous都要小写。执行dir命令发现CALL.html 执行get CALL…