数据结构与算法 第5天(树和二叉树)

news2024/11/25 13:33:21

树形结构

一对多        只有一个前驱       可以有多个后继

树的定义

基本术语

有序树:树中结点的各子树从左至右有次序(最左边的为第一个孩子)

森林:是 m(m≥0)棵互不相交的树的集合。        一棵树可以看成特殊的森林

二叉树

每个节点最多有两个分支        所有树可以转化成唯一二叉树

二叉树定义

二叉树不是树的特殊情况        差别是子树是否区分

抽象数据类型定义

二叉树性质

从下往上数,每个孩子都有一条边连着双亲,除了根节点。

如果有n个节点 就会有B=n-1条边

从上往下看,每个度为2的节点会产生两条边,度为1的节点会产生一条边

如果有n个节点,就有 B=n2*2+n1条边

总结点数等于,度为2的节点,加度为1的节点,加度为0的节点

综上叶子树n0=n2+1

简单说就是,一个节点为i,则双亲结点为i/2取整,左子树节点为2i,右子树节点为2i+1

特殊形式的二叉树

满二叉树

注:在满二叉树中,从最后一个结点开始,连续去掉任意个结点,即是一棵完全二叉树.

完全二叉树

满二叉树一定是完全二叉树

二叉树顺序存储

按满二叉树的结点层次编号,依次存放二又树中的数据元素。

二叉树链式存储结构

*三叉链表

应用

数据压缩

求解表达式的值

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

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

相关文章

【王树森】BERT:预训练Transformer模型(个人向笔记)

前言 BERT:Bidirectional Encoder Representations from TransformerBERT是用来预训练Transformer模型的encoder的本节课只讲述主要思想BERT用两个主要思想来训练Transformer的encoder网络:①随机遮挡单词,让encoder根据上下文来预测被遮挡的…

2024年9月1日 十二生肖 今日运势

小运播报:2024年9月1日,星期日,农历七月廿九 (甲辰年壬申月戊辰日),法定节假日。 红榜生肖:鸡、猴、鼠 需要注意:龙、兔、狗 喜神方位:东南方 财神方位:正…

【系统架构设计师-2015年】综合知识-答案及详解

【第1~2题】 某航空公司机票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i1,2,…,n)管理机票销售。假设Tj(j1,2,…,m)单元存放某日某…

2025届必看:如何用Java SpringBoot+Vue打造免费体育馆场地预约系统?

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

异常与使用

异常 一、C语言传统的错误处理机制二、异常1、概念2、关键字3、示例 三、异常的使用1、异常的抛出和匹配原则2、在函数调用链中异常栈展开匹配原则3、栈展开示意图4、示例代码5、运行结果 四、异常的重新抛出1、作用2、示例代码3、运行结果 五、异常安全六、异常规范1、概念2、…

CSS-浮动【看这一篇就够了】

目录 浮动布局 浮动是如何工作的 浮动的本质和要点 如何产生浮动 元素浮动的特性 1.元素添加浮动后,脱离文档流 2.如果父元素的宽度不够 3.浮动的顺序贴靠特性 4.元素浮动后,具有行内块级元素特性 5.浮动的元素会造成父元素高度塌陷 6.浮动对…

“无法连接打印机0X0000011B”原因分析及多种解决方法

在日常办公和生活中,打印机是不可或缺的重要设备。然而,有时在连接打印机的过程中,我们可能会遇到错误代码0x0000011b的提示。有更新补丁导致的、有访问共享打印机服务异常、有访问共享打印机驱动异常等问题导致的,针对访问共享打…

MySQL场景测试题

第一题 软件环境描述: Mysql V5.7.30 Innodb RR隔离级别 表结构以及数据描述: (1)t_user用户表,表格如下: CREATE TABLE t_user ( id int(10) NOT NULL, name varchar(100) DEFAULT NULL, PRIMARY KEY (id)…

240831-Gradio之RAG文档对话工具Kotaemon的安装与配置

A. 用户界面 该项目既可以作为功能性 RAG UI,既可以用于对文档进行 QA 的最终用户,也可以用作想要构建自己的 RAG 管道的开发人员。对于最终用户: - 一个干净且简约的用户界面,用于基于RAG的QA。 - 支持 LLM API 提供程序&#xf…

gethub-rrsf

一.FastCGI协议 1.来到127.0.0.1下发现404报错 2.这一关我们要借助一个叫Gopherus的工具,我这里是在kali虚拟机里面克隆的 git clone https://github.com/tarunkant/Gopherus.git 3.运行命令 由于一句话木马无法写入,所以我们使用base64编码&#xf…

将Google Chrome或Microsoft Edge浏览器的地址栏隐藏的方法

将Google Chrome或Microsoft Edge浏览器的地址栏隐藏的方法 目标效果示范 我们以百度首页为例,普通模式启动的页面通常会显示地址栏,如下图所示: 而本文要实现的效果是隐去地址栏和书签栏(如果有的话),无…

重生奇迹MU 敏捷流梦幻骑士 真正的平民PK王

“梦幻骑士”这个职业已经存在于重生奇迹MU中很长时间了,虽然现在已经不算是新职业了,但玩家们对于梦幻骑士的研究和开发一直没有停止过。它作为一个特殊的职业,与传统职业截然不同,拥有着许多独特的玩法。其中,有一种…

JVM2-JVM组成、字节码文件、类的生命周期、类加载器

Java虚拟机的组成 Java虚拟机主要分为以下几个组成部分: 类加载子系统:核心组件类加载器,负责将字节码文件中的内容加载到内存中运行时数据区:JVM管理的内存,创建出来的对象、类的信息等内容都会放在这块区域中执行引…

有宠物用哪个牌子的宠物空气净化器,希喂、IAM哪个更值得推荐

由于很喜欢猫咪和狗狗,每天都只想和它们待在一起,一点都不想上班,经过一番深思熟虑后,决定裸辞去开了一家宠物店。还真别说,开了宠物店之后,整个人都舒爽了,还可以摸到很多不同品种的小猫小狗&a…

学习笔记之JS(0830)

1、介绍 1.1 JavaScript (是什么?) javascript是一种运行在客户端(浏览器)的编程语言,实现人机交互效果。作用(做什么?) 网页特效(监听用户的一些行为让万叶…

Java 集合框架与泛型实战指南

Collection: Collection 不唯一,无序 List 不唯一,有序 Set 唯一,无序 ArrayList:内部使用长度可变的数组,遍历查询效率高 LinkedList:采用双向链表实现,增删改效率比较高 ArrayL…

【智能排班系统】Hibernate Validator 参数校验

🎯导读:本文档介绍了参数校验的重要性及其在软件开发中的作用,强调了数据完整性、安全性、用户体验、系统稳定性及开发效率等方面的关键价值。文档详细阐述了Hibernate Validator这一流行的Java验证框架的使用方法,展示了如何利用…

适马相机cf卡剪切的数据还能恢复吗?可尝试这几种方法

“本想把适马相机CF卡里的珍贵数据剪切到电脑上,‌以备不时之需,‌但是不知道怎么回事,剪切后数据既不在电脑上,‌CF卡里也没了,这可真是让我心急如焚!‌求大神指点迷津,‌帮我找回那些重要的文…

Vue 选项式api和组合式api 路由嵌套

选项式api和组合式api是两种不同的语法习惯&#xff0c;<template>标签内还是该怎么写就怎么写&#xff0c;不一样的只是<script>里面的语法改变了。 目录 选项式api&#xff1a; 组合式api&#xff1a; 1)省略各种关键字&#xff1a; 省略前&#xff1a; 省略后…

【Qt】菜单栏

目录 菜单栏 例子&#xff1a;创建菜单栏、菜单、菜单项 例子&#xff1a;给菜单设置快捷键 例子&#xff1a;给菜单项设置快捷键 例子&#xff1a;添加子菜单 例子&#xff1a;添加分隔线 例子&#xff1a;添加图标 菜单栏 Qt中的菜单栏是通过QMenuBar这个类实现的&…