12.13_黑马数据结构与算法笔记Java

目录

098 堆 heapify 3

099 堆 增删替换

100 堆 e01 堆排序

100 堆e02 求数组第k大元素

100 堆e03 求数据流第k大元素

100 堆e04 求数据流中位数1

100 堆e04 求数据流中位数2

100 堆e04 求数据流中位数3

101 二叉树 概述

102 二叉树 深度优先遍历

103 二叉树 前中后遍历 递归实现

104 二叉树 前中后遍历 非递归1

105 二叉树 前中后遍历 非递归2

106 二叉树 前中后遍历 非递归3

107 二叉树 前中后遍历 非递归4

108 二叉树 e04 对称二叉树

109 二叉树 e05 最大深度 解法1

110 二叉树 e05 最大深度 解法2

111 二叉树 e05 最大深度 解法3

112 二叉树 e06 最小深度

113 二叉树 e07 翻转二叉树

114 二叉树 e08 根据后缀表达式建树

115 二叉树 e09 根据前中遍历结果建树

116 二叉树 e010 根据中后遍历结果建树

117 二叉搜索树 概述

118 二叉搜索树 get

119 二叉搜索树 泛型key


098 堆 heapify 3

099 堆 增删替换

-------------------------------------------------------------------------------------------------------------------------------- 

up方法里面,child =parent:因为如果没有退出循环,就还要为下一次的比较做好准备,因此要改变child的值,那改变成什么样子呢?就变成这一轮parent的样子。 

---------------------------------------------------------------------------------------------------------------------------------

100 堆 e01 堆排序

100 堆e02 求数组第k大元素

100 堆e03 求数据流第k大元素

100 堆e04 求数据流中位数1

100 堆e04 求数据流中位数2

---------------------------------------------------------------------------------------------------------------------------------

代码解释:利用布尔类型判断是大顶堆还是小顶堆,减少重复的代码。

别的扩容代码:

---------------------------------------------------------------------------------------------------------------------------------

经过修改: 

100 堆e04 求数据流中位数3

---------------------------------------------------------------------------------------------------------------------------------

比较器 

 

-------------------------------------------------------------------------------------------------------------------------------- 

101 二叉树 概述

102 二叉树 深度优先遍历

如何记忆:

前中后,则记忆中间的部分,

前对应中间访问的是左,

中对应中间访问的是中,

后对应中间访问的是右。其余的就按照左中右进行补充。 

理解:

前序遍历,从左向右走,去的时候遇到啥遍历啥

中序遍历:从左向右走,去的时候不要,回来的时候,遇到啥遍历啥

后序遍历:从左向右,去的时候不要,回来的时候,真正结束了,才遍历,比如像这个1,我确实后来经过了它,但是其实我们的缘分还未尽。缘分尽了,才遍历。

103 二叉树 前中后遍历 递归实现

104 二叉树 前中后遍历 非递归1

用栈记得来时路。 

105 二叉树 前中后遍历 非递归2

中序

前序  

106 二叉树 前中后遍历 非递归3

后序遍历中,要增加一些细节去限定条件。当peek的右子树为null的时候,因为左子树已经搞完,而又没有右子树,就可以直接弹出peek。当peek的右子树不为null的时候,就要去判断来时路到底是走左子树还是右子树,因为要判断我现在走回来这条路到底是不是从右子树这边走回来(也就是比较弹栈出来的那个数字是不是peek的右子树),如果弹栈的是7,就说明右孩子都处理完了。如果都不是以上的情况, 则标记peek的右子树为curr,进入下一轮的比较。

107 二叉树 前中后遍历 非递归4

108 二叉树 e04 对称二叉树

109 二叉树 e05 最大深度 解法1

110 二叉树 e05 最大深度 解法2

111 二叉树 e05 最大深度 解法3

112 二叉树 e06 最小深度

-------------------------------------------------------------------------------------------------------------------------------- 

如果是null的话,就不应该比较了。

-------------------------------------------------------------------------------------------------------------------------------- 

113 二叉树 e07 翻转二叉树

114 二叉树 e08 根据后缀表达式建树

115 二叉树 e09 根据前中遍历结果建树

116 二叉树 e010 根据中后遍历结果建树

117 二叉搜索树 概述

118 二叉搜索树 get

 如果函数最后一步是调用自己,那就是伪递归,尽可能将这个形式转化为非递归形式。

非递归,以下

119 二叉搜索树 泛型key

为了让泛型key进行大小比较,就要实现接口,可以搞一个泛型,或者两个泛型。

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

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

相关文章

人工智能导论习题集(2)

第三章:确定性推理 题1题2题3题4题5题6 题1 题2 题3 题4 题5 题6

Docker容器:docker推送镜像至Harbor

目录 1、Harbor创建项目 2、进入test项目,查看推送命令 3、在docker服务器上准备一个镜像 4、修改docker客户端配置 5、重启docker服务 6、docker登录Harbor 7、docker镜像推送到Harbor 1、Harbor创建项目 2、进入test项目,查看推送命令 3、在dock…

薅github的羊毛-用pages建自己的博客或资源站 - 博客工具 - 2/2

笔者调研了好多个静态博客工具,最后锁定Hexo了,但不等于其他博客不行。我只吐槽两个 Hugo - 难用Gridea - 简直就是骗钱的,我交钱用不了 theme没有链接,同步也同步不了,估计以前是可以,现在经营不下去&…

JUC并发编程 04——Java内存模型之JMM

一.CPU 缓存模型 为什么要弄一个 CPU 高速缓存呢? 类比我们开发网站后台系统使用的缓存(比如 Redis)是为了解决程序处理速度和访问常规关系型数据库速度不对等的问题。 CPU 缓存则是为了解决 CPU 处理速度和内存处理速度不对等的问题。 我们…

MDK 生成二进制bin文件 设置 任意路径

第一步:找到魔法, 第二步:拷贝语法到Run#1 : fromelf.exe --bin -o "$LL.bin" "#L" 第三步:点击Ok 第四步:重新编译即可生成bin文件

自炫锁2-b

1. 自旋锁 自旋锁也是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。 无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说&…

CGAL的3D网格生成

1、介绍 该软件包致力于生成离散三维域的各向同性简化网格。要网格化的域是三维空间的子集,需要有界。域可以连接或由多个组件组成和/或细分为几个子域。 边界曲面和细分曲面是平滑曲面或分段平滑曲面,由平面或曲面面片形成。表面可能表现出一维特征&…

TCP/IP详解——ARP 协议

文章目录 一、ARP 协议1. ARP 数据包格式2. ARP 工作过程3. ARP 缓存4. ARP 请求5. ARP 响应6. ARP 代理7. ARP 探测IP冲突8. ARP 协议抓包分析9. ARP 断网攻击10. 总结 一、ARP 协议 ARP(Address Resolution Protocol)协议工作在网络层和数据链路层之间…

浅谈 USB Bulk 深入浅出 (3) - USB Bulk 装置传输的注意事项

来源:大大通 作者:冷氣團 1 USB Bulk 是什么 USB 是即插即用使用差动信号的装置界面,是以 端点 ( Endpoint ),做为传输装置的输出入端,透过不同的端点 ( Endpoint ) 和模式,来进行与装置的沟通&#xff…

WWW 指南-万维网联盟(World Wide Web)

WWW - 万维网联盟 WWW通常称为网络。 web是一个世界各地的计算机网络。 电脑在Web上使用标准语言沟通。 万维网联盟(W3C)制定了Web标准 什么是WWW? WWW 代表 World Wide Web(万维网)万维网常常被称为 网络网络是世界各地的计算机网络网络中…

nestjs守卫/全局守卫校验jwt

一、守卫 目标 部分接口需要用户登录后才可以访问,用户登录后可以颁发 jwt_token 给前端,前端在调用需要鉴权的接口,需要在请求头添加 jwt_token,后端校验通过才能继续访问,否则返回403无权访问 创建守卫 anth 安装…

java.lang.NegativeArraySizeException

构建maven项目时发生的异常 maven-resources-production:gci-system-start:java.lang.NegativeArraySizeException:-1972174848解决方案 先将 target 目录删除,然后重新构建项目即可

【从零开始学习JVM | 第九篇】了解 常见垃圾回收器

前言: 垃圾回收器(Garbage Collector)是现代编程语言中的一项重要技术,它提供了自动内存管理的机制,极大地简化了开发人员对内存分配和释放的繁琐工作。通过垃圾回收器,我们能够更高效地利用计算机的内存资…

基于pandoraNext使用chatgpt4

1.登陆GitHub 获取pandoraNext项目GitHub - pandora-next/deploy: Pandora Cloud Pandora Server Shared Chat BackendAPI Proxy Chat2API Signup Free PandoraNext. New GPTs(Gizmo) UI, All in one! 在release中选择相应版本操作系统的安装包进行下载 2.获取license_…

【OS】操作系统总复习笔记

操作系统总复习 文章目录 操作系统总复习一、考试题型1. 论述分析题2. 计算题3. 应用题 二、操作系统引论(第1章)2.1 操作系统的发展过程2.2 操作系统定义2.3 操作系统的基本特性2.3.1 并发2.3.2 共享2.3.3 虚拟2.3.4 异步 2.4 OS的功能2.5 OS结构2.5 习…

聊聊Java中的常用类String

String、StringBuffer、StringBuilder 的区别 从可变性分析 String不可变。StringBuffer、StringBuilder都继承自AbstractStringBuilder ,两者的底层的数组value并没有使用private和final修饰,所以是可变的。 AbstractStringBuilder 源码如下所示 ab…

鸿蒙ArkTS Web组件加载空白的问题原因及解决方案

问题症状 初学鸿蒙开发,按照官方文档Web组件文档《使用Web组件加载页面》示例中的代码照抄运行后显示空白,纠结之余多方搜索后扔无解决方法。 运行代码 import web_webview from ohos.web.webviewEntry Component struct Index {controller: web_webv…

MuMu模拟器12如何连接adb?

一、MuMu模拟器12端口查看 MuMu模拟器12现已支持adb同时连接多个模拟器进行调试的操作,可以参考以下步骤操作,查看MuMu模拟器12本体以及多开模拟器的adb端口: 单开的MUMU模拟器12可通过模拟器右上角菜单-问题诊断,获取ADB调试端…

VM-Linux 桥接网络设置

VM-Linux 桥接网络设置 文章目录 VM-Linux 桥接网络设置什么是桥接网络环境工具关键配置VM设置CentOS7配置 什么是桥接网络 网络桥接是将两个或多个独立的网络进行连接的一种方法。它可以把两个网络的数据传输机制集成在一起,使得用户可以更顺畅地访问各个网络&…

Linux实操——安装Mysql

安装Mysql 一、检查是否已经安装了mariadb数据库,并卸载二、下载mysql包,并通过ftp上传到服务器三、解压安装包四、创建数据存储文件夹五、创建执行mysqld命令的用户,并初始化mysql六、启用传输安全七、启动mysql,验证是否安装成功 总结 博主…