图书推荐|图解Java数据结构与算法:微课视频版

图片

掌握Java数据结构与常见算法,精通Java语言编程

图片

本书内容

《图解Java数据结构与算法:微课视频版》系统、全面地介绍数据结构的基础理论与算法设计,精选数据结构考研习题和各类典型例题进行讲解,案例和课后习题丰富,突出对数据结构算法实践能力的培养。本书算法均采用Java语言实现,示例代码可直接上机运行。《图解Java数据结构与算法:微课视频版》配套资源丰富,包括示例源码、PPT课件、教学视频、教学大纲、习题与答案等。

《图解Java数据结构与算法:微课视频版》共分11章,内容包括数据结构与算法概述,线性表,栈和队列,串、数组和广义表,树,图,查找算法,排序算法,分治算法,贪心算法,回溯算法。

《图解Java数据结构与算法:微课视频版》适合Java数据结构初学者,可作为高等院校计算机、软件工程等相关专业数据结构课程的教材,也可作为计算机软件开发、准备计算机专业研究生考试、参加各类算法竞赛、准备计算机软件资格考试的人员的参考用书。

本书作者

陈锐,郑州轻工业大学校聘副教授、硕士生导师,博士。中国人工智能学会情感智能专委会委员、中国图象图形学学会人机交互专委会委员。有多年教学实践经验,熟悉数据结构与算法等内容,出版相关图书:《Python数据结构与算法(微课视频版)》《Python机器学习实践》《数据结构习题精解(C语言实现+微课视频)》《数据结构(C语言实现)》《零基础学数据结构》《C/C++函数与算法速查大辞典》。

黄敏,郑州轻工业大学教授,硕士生导师。东南大学计算机科学与工程学院图像处理与科学可视化专业工学博士。主编教材2部,获河南省教学成果二等奖1项,校级教学成果一等奖2项,发表教改论文3篇,获郑州轻工业大学教学名师。

张世征,郑州轻工业大学讲师,博士研究生。近些年发表论文5篇,其中SCI论文4篇。主持校级教改项目一项,参与两项国家自然科学基金青年基金。授权发明专利和软件著作权10余项。

编辑推荐

详解数据结构:线性表、栈和队列、串、数组和广义表、树、图。

实战常见算法:查找、排序、分治算法、贪心算法、回溯算法

配套示例源码、教学视频、PPT课件、教学大纲、习题与答案、作者QQ群答疑服务。

适合想要精通Java编程的初学者、Web应用开发人员。

本书目录

 第1章  数据结构与算法概述 1

1.1  为什么要学习数据结构 1

1.2  基本概念和术语 2

1.3  数据的逻辑结构与存储结构 4

1.3.1  逻辑结构 4

1.3.2  存储结构 5

1.4  抽象数据类型及其描述 6

1.4.1  什么是抽象数据类型 6

1.4.2  抽象数据类型的描述 6

1.5  算法 8

1.5.1  数据结构与算法的关系 9

1.5.2  什么是算法 9

1.5.3  算法的5个特性 9

1.5.4  算法的描述 10

1.6  算法分析 11

1.6.1  算法设计的4个目标 11

1.6.2  算法效率评价 12

1.6.3  算法的时间复杂度 13

1.6.4  算法的空间复杂度 16

1.7  学好数据结构的秘诀 17

1.8  小结 19

第2章  线性表 20

2.1  线性表的定义及抽象数据类型 20

2.1.1  线性表的定义 20

2.1.2  线性表的抽象数据类型 21

2.2  线性表的顺序表示与实现 22

2.2.1  线性表的顺序存储 22

2.2.2  顺序表的基本运算 23

2.2.3  基本操作性能分析 26

2.2.4  顺序表应用举例 27

2.3  线性表的链式表示与实现 30

2.3.1  单链表的存储结构 30

2.3.2  单链表上的基本运算 32

2.3.3  单链表应用举例 36

2.3.4  循环单链表 38

2.3.5  双向链表 41

2.4  一元多项式的表示与相乘 44

2.4.1  一元多项式的表示 44

2.4.2  一元多项式相乘 45

2.5  小结 49

第3章  栈与队列 50

3.1  栈的表示与实现 50

3.1.1  栈的定义 50

3.1.2  栈的抽象数据类型 51

3.1.3  顺序栈 52

3.1.4  链栈 56

3.2  栈的应用 59

3.2.1  数制转换 59

3.2.2  行编辑程序 60

3.2.3  算术表达式求值 61

3.3  栈与递归 67

3.3.1  递归 68

3.3.2  消除递归 71

3.4  队列的表示与实现 73

3.4.1  队列的定义 73

3.4.2  队列的抽象数据类型 73

3.4.3  顺序队列 74

3.4.4  顺序循环队列 76

3.4.5  双端队列 79

3.4.6  链式队列 79

3.4.7  链式队列的实现 81

3.5  队列在杨辉三角中的应用 82

3.5.1 什么是杨辉三角 82

3.5.2  构造队列 83

3.5.3  杨辉三角队列的实现 83

3.6  小结 85

第4章  串、数组与广义表 86

4.1  串的定义及抽象数据类型 86

4.1.1  什么是串 86

4.1.2  串的抽象数据类型 87

4.2  串的存储表示 88

4.2.1  串的顺序存储结构 88

4.2.2  串的链式存储结构 89

4.3  串的模式匹配 90

4.3.1  朴素模式匹配算法——Brute-Force 90

4.3.2  改进算法—KMP算法 92

4.3.3  模式匹配应用举例 98

4.4  数组的定义及抽象数据类型 99

4.4.1  数组的基本概念 99

4.4.2  数组的抽象数据类型 100

4.4.3  数组的顺序存储结构 100

4.4.4  特殊矩阵的压缩存储 101

4.4.5  稀疏矩阵的压缩存储及典型应用 104

4.5  广义表 111

4.5.1  什么是广义表 111

4.5.2  广义表的抽象数据类型 112

4.5.3  广义表的头尾链表表示 113

4.5.4  广义表的扩展线性链表表示 113

4.6  小结 115

第5章  树和二叉树 116

5.1  树的定义和抽象数据类型 116

5.1.1  树的定义 116

5.1.2  树的逻辑表示 118

5.2  二叉树的定义、性质和抽象数据类型 118

5.2.1  二叉树的定义 119

5.2.2  二叉树的性质 120

5.2.3  二叉树的抽象数据类型 122

5.2.4  二叉树的存储表示 123

5.3  二叉树的遍历 125

5.3.1  二叉树遍历的定义 126

5.3.2  二叉树的先序遍历 126

5.3.3  二叉树的中序遍历 128

5.3.4  二叉树的后序遍历 130

5.4  二叉树的线索化 132

5.4.1  二叉树的线索化定义 132

5.4.2  二叉树的线索化算法实现 133

5.4.3  线索二叉树的遍历 135

5.4.4  线索二叉树的应用举例 137

5.5  树、森林与二叉树 139

5.5.1  树的存储结构 139

5.5.2  树转换为二叉树 142

5.5.3  森林转换为二叉树 143

5.5.4  二叉树转换为树和森林 143

5.5.5  树和森林的遍历 144

5.6  并查集 145

5.6.1  并查集的定义 145

5.6.2  并查集的实现 146

5.6.3  并查集的应用 149

5.7  哈夫曼树 151

5.7.1  哈夫曼树的定义 151

5.7.2  哈夫曼编码 152

5.7.3  哈夫曼编码算法的实现 153

5.8  小结 158

第6章  图 159

6.1  图的定义与相关概念 159

6.1.1  图的定义 159

6.1.2  图的相关概念 160

6.1.3  图的抽象数据类型 162

6.2  图的存储结构 163

6.2.1  邻接矩阵表示法 163

6.2.2  邻接表表示法 168

6.2.3  十字链表 172

6.2.4  邻接多重表 173

6.3  图的遍历 174

6.3.1  图的深度优先遍历 174

6.3.2  图的广度优先遍历 178

6.4  图的连通性问题 179

6.4.1  无向图的连通分量与生成树 180

6.4.2  最小生成树 181

6.5  有向无环图 187

6.5.1  AOV网与拓扑排序 187

6.5.2  AOE网与关键路径 190

6.6  最短路径 196

6.6.1  从某个顶点到其他顶点的最短路径 196

6.6.2  每一对顶点之间的最短路径 202

6.7  小结 206

第7章  查找 208

7.1  查找的基本概念 208

7.2  静态查找 209

7.2.1  顺序表的查找 209

7.2.2  有序顺序表的查找 211

7.2.3  索引顺序表的查找 213

7.3  动态查找 215

7.3.1  二叉排序树 215

7.3.2  平衡二叉树 221

7.4  B-树与B+树 227

7.4.1  B-树 227

7.4.2  B+树 233

7.5  哈希表 233

7.5.1  哈希表的定义 234

7.5.2  哈希函数的构造方法 234

7.5.3  处理冲突的方法 235

7.5.4  哈希表的查找与分析 237

7.5.5  哈希表应用举例 238

7.6  小结 242

第8章  排序 243

8.1  排序的基本概念 243

8.2  插入排序 244

8.2.1  直接插入排序 244

8.2.2  折半插入排序 246

8.2.3  希尔排序 246

8.2.4  插入排序应用举例 247

8.3  选择排序 248

8.3.1  简单选择排序 248

8.3.2  堆排序 249

8.4  交换排序 254

8.4.1  冒泡排序 254

8.4.2  快速排序 256

8.4.3  交换排序应用举例 258

8.5  归并排序 261

8.6  基数排序 263

8.6.1  基数排序算法 263

8.6.2  基数排序应用举例 266

8.7  小结 269

第9章  分治算法 271

9.1  分治算法的基本思想 271

9.2  求最大子序列的和 274

9.3  求x的n次幂 277

9.4  众数问题 278

9.5  求n个数中的最大者和最小者 280

9.6  整数划分问题 283

9.7  大整数乘法 285

9.8  小结 290

第10章  贪心算法 291

10.1  贪心算法的思想 291

10.2  找零钱问题 293

10.3  背包问题 295

10.4  删数问题 299

10.5  加油站问题 301

10.6  小结 302

第11章  回溯算法 303

11.1  回溯算法的基本思想 303

11.1.1  问题的解空间 304

11.1.2  回溯算法的基本思想 305

11.2  装载问题 307

11.3  旅行商问题 310

11.4  和式分解问题 314

11.5  小结 317

参考文献 318

课后习题(电子版见下载) 319

本文摘自《图解Java数据结构与算法:微课视频版》,获出版社和作者授权发布。

图解Java数据结构与算法(微课视频版)——京东

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

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

相关文章

Ubuntu 配置 kubernetes 学习环境,让外部访问 dashboard

Ubuntu 配置 kubernetes 学习环境 一、安装 1. minikube 首先下载一下 minikube,这是一个单机版的 k8s,只需要有容器环境就可以轻松启动和学习 k8s。 首先你需要有Docker、QEMU、Hyperkit等其中之一的容器环境,以下使用 docker 进行。 对…

如何使用CHAT-AI?

伴随着CHAT-GPT的出现,人们都喜欢上了CHAT-AI。嗯?你还不会用?! 教程来喽! 首先点这里的 … 点击扩展 接着选择“管理扩展” 点击之后搜索“wetab” 最后你需要注册一个号,然后就可以使用CHAT-AI啦&#x…

产品推荐 | 基于 ALINX XILINX ZYNQ-7000 XC7Z020 多网口 FPGA开发板

01、产品概述 此款开发板使用的是Xilinx公司的Zynq 7000系列的芯片,型号为XC7Z020-2CLG484I,5 路千兆以太网接口,支持多网口高速数据交换数据处理存储,视频传输处理以及工业控制等。内核 CPU搭载双核 ARM CORTEX-A9;在…

大数据Hadoop入门04 ——【HDFS shell操作】

一、HDSF shell命令行解释说明 1、介绍 命令行界面(英语: command-line interface,缩写: CLl),是指用户通过键盘输入指令,计算机接收到指令后,予以执行一种人际交互方式。Hadoop提供了文件系统的shell命令行客户端:…

43 带 fixed 列的 el-table 不兼容于 sortablejs

前言 这是一个基于 sortablejs 来实现的 el-table 的拖拽功能的基础实现 然后 这个过程中遇到的一个比较特殊的问题是, 关于 el-table-column 的 fixed 的属性, 对于 sortablejs 这边来定位目标选择列 影响的一个问题 在基础的用例中, 使用 “.el-table__body-wrapper tbo…

手把手教你绘画原型图:Axure的安装使用

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师,大模型,爬虫、ACM算法 💒 公众号&#xff…

并发学习25--多线程 ThreadPoolExecutor

类图:定义了一些重要的接口和实现类 线程池的几种状态: ThreadPoolExecutor构造方法 1.救急线程 线程池中会有核心线程和救急线程;救急线程数最大线程数-核心线程数。而救急线程会在阻塞队列已经占满的情况下,执行下一个即将要被…

07、JS实现:用回溯法实现数组全排列的算法(一步一步剖析,很详细)

回溯法实现数组全排列的算法 Ⅰ、回溯法实现数组全排列:1、题目描述:2、解题思路:3、实现代码: Ⅱ、小结: Ⅰ、回溯法实现数组全排列: 1、题目描述: 给定⼀个 没有重复 数字的序列,…

Kimi 200万字爆火,通义加码1000万,阿里笑而不语

关注卢松松,会经常给你分享一些我的经验和观点。 我怎么感觉Kimi是一个“网红”产品呢?在没有任何预兆情况下,国产AI大模型Kimi突然爆火,最近我在很多平台上看到了Kimi的广告,感觉到处都在吹这个产品。 看见上面的新闻了吧&a…

使用Spark单机版环境

在Spark单机版环境中,可通过多种方式进行实战操作。首先,可使用特定算法或数学软件计算圆周率π,并通过SparkPi工具验证结果。其次,在交互式Scala版或Python版Spark Shell中,可以进行简单的计算、打印九九表等操作&…

VRAY渲染设置大神参数(建议收藏)

3dmax效果图云渲染平台——渲染100以3ds Max 2024、VR 6.2、CR 11.2等最新版本为基础,兼容fp、acescg等常用插件,同时LUT滤镜等参数也得到了同步支持。注册填邀请码【7788】可领30元礼包和免费渲染券哦~ 公用:输出大小:一般小图50…

JavaScript进阶5之垃圾回收(计算机组成、解释与编译、JavaScript引擎、垃圾回收、内存管理)、运行机制(浏览器进程分类、浏览器事件循环)

垃圾回收&运行机制 垃圾回收计算机组成解释与编译JavaScript引擎V8引擎 垃圾回收引用计数法标记清除(mark-sweep)算法 内存管理新生代 运行机制浏览器进程分类:浏览器事件循环宏任务微任务整体流程浏览器事件循环案例一案例二 垃圾回收 …

SpringBoot中处理校验逻辑的两种方式:Hibernate Validator+全局异常处理

最近正在开发一个校园管理系统,需要对请求参数进行校验,比如说非空啊、长度限制啊等等,可选的解决方案有两种: 一种是用 Hibernate Validator 来处理一种是用全局异常来处理 两种方式,我们一一来实践体验一下。 一、…

Oracle Data Guard部署

Oracle的主备DG搭建 1. 修改主机名,同步时间 主库IP:192.168.100.137 备库IP:192.168.100.138配置主机名(主库) Hostname zygjpdb vim /etc/hosts 192.168.100.137 zygjpdb 192.168.100.138 zygjsdbvim /etc/sysconfig/network HOSTNAMEzygjpdb ------…

TransformControls 是 Three.js 中的一个类,用于在网页中进行 3D 场景中物体的交互式操作。

demo案例 TransformControls 是 Three.js 中的一个类,用于在网页中进行 3D 场景中物体的交互式操作。让我们来详细讲解它的输入参数、输出、属性和方法: 输入参数: TransformControls 构造函数通常接受两个参数: camera&#…

YAPI接口自动鉴权功能部署详解

安装准备 以下操作,默认要求自己部署过yapi,最好是部署过yapi二次开发环境。 无论是选择在线安装或者是本地安装,都需要安装client工具。 1、yapi-cli:npm install yapi-cli –g, 2、安装后将文件夹nodejs/node_gl…

JavaScript 打印教程(第二部分)设置编码

JavaScript 打印教程(第二部分)设置编码 在进行文本打印时,尤其是涉及到中文或其他特殊字符时,正确的编码设置是非常重要的。不同的打印机支持不同的指令集,因此了解并使用适合您打印机的指令集是关键。本篇教程继续使…

使用 python 拆分 excel 文件

文章目录 1、安装虚拟环境(在特定文件夹内)2、脚本 split.sh3、运行脚本(在特定文件夹内)4、结果 1、安装虚拟环境(在特定文件夹内) brew install python3 xcode-select --install python3 -m venv my_pan…

【Python】Selenium自动化测试框架

设计思路 本文整理归纳以往的工作中用到的东西,现汇总成基础测试框架提供分享。 框架采用python3 selenium3 PO yaml ddt unittest等技术编写成基础测试框架,能适应日常测试工作需要。 1、使用Page Object模式将页面定位和业务操作分开&#xff0…

【蓝牙协议栈】【SMP】安全管理协议

1. SMP概念 SMP(Security Manager Protocol)即安全管理协议。SMP 是蓝牙用来进行安全管理的,其定义了配对和 Key(可以理解成密钥)的分发过程的实现,以及用于 实现这些方法的协议和工具。SMP 的内容主要是配…