×
暂无评论
图文详情
  • ISBN:9787302662747
  • 装帧:70g胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:284
  • 出版时间:2024-08-01
  • 条形码:9787302662747 ; 978-7-302-66274-7

本书特色

本书特色:(1)注重夯实基础。注重讲解每种数据结构的特点,并结合实例讲解怎样正确地使用相应的数据结构和算法。 (2) 关注实用性。注重结合一些经典问题和实际问题,使读者在学习数据结构和算法后能加深对实际问题的了解,并提高解决某些实际问题的能力。 (3)强调培养能力。精选经典和实用性强的算法思想,并结合经典的问题体现这些算法思想的精髓,有利于帮助读者掌握如何设计和实现高效、优秀的算法。 (4)体现语言特色。特别注重体现Java语言的特色,除了前3章以外,其余各章的大部分代码都体现了Java的特色和Java在算法实现方面的优势。 本书配套资源丰富,包括教学大纲、教学课件、电子教案、程序源码、在线题库和习题答案。

内容简介

本书面向有一定Java语言基础的读者,重点讲解数据结构和相关算法以及经典算法思想。本书不仅注重讲解每种数据结构的特点,而且特别注重结合实例讲解怎样正确地使用每种数据结构和相应的算法,强调使用数据结构和算法解决问题。本书精选了一些经典和实用性强的算法思想,并通过解决一些经典的问题体现这些算法思想的精髓。全书共14章,分别是数据结构概述、算法与复杂度、递归算法、数组与Arrays类、链表与LinkedList类、顺序表与ArrayList类、栈与Stack类、队列与ArrayDeque类、二叉树与TreeSet类、散列表与HashMap类、集合与HashSet类、常用算法与Collections类、图论和经典算法思想。本书特别注重体现Java语言的特色,除了前3章以外,其余各章的大部分代码都体现了Java的特色和Java在算法实现方面的优势。
本书可作为计算机相关专业的数据结构与算法的教材,也可作为软件开发等专业人员的参考用书。

目录

第1章 数据结构概述 1.1 逻辑结构 ……………………………………………………………………………… 1 1.2 物理结构 ……………………………………………………………………………… 6 1.3 算法与结构 …………………………………………………………………………… 6 习题 1 ……………………………………………………………………………………… 7 第2章 算法与复杂度 2.1 算法 …………………………………………………………………………………… 8 2.2 算法的复杂度 ………………………………………………………………………… 8 2.3 常见的复杂度 ………………………………………………………………………… 10 习题 2 ……………………………………………………………………………………… 22 第3章 递归算法 3.1 递归算法简介 ………………………………………………………………………… 23 3.2 线性递归与非线性递归 ……………………………………………………………… 24 3.2.1 线性递归 ……………………………………………………………………… 24 3.2.2 非线性递归 …………………………………………………………………… 26 3.3 问题与子问题 ………………………………………………………………………… 28 3.4 递归与迭代 …………………………………………………………………………… 30 3.5 多重递归 ……………………………………………………………………………… 33 3.6 经典递归 ……………………………………………………………………………… 35 3.6.1 杨辉三角形 …………………………………………………………………… 35 3.6.2 老鼠走迷宫 …………………………………………………………………… 37 3.6.3 汉诺塔 ………………………………………………………………………… 39 3.7 优化递归 ……………………………………………………………………………… 45 习题 3 ……………………………………………………………………………………… 48 第4章 数组与Arrays类 4.1 引用与参数存值 ……………………………………………………………………… 49 4.1.1 数组的引用 …………………………………………………………………… 49 4.1.2 参数存值 ……………………………………………………………………… 51 4.2 数组与排序 …………………………………………………………………………… 53 4.2.1 快速排序 ……………………………………………………………………… 53 4.2.2 归并排序 ……………………………………………………………………… 57 4.3 数组的二分查找 ……………………………………………………………………… 59 4.3.1 二分法 ………………………………………………………………………… 59 4.3.2 过滤数组 ……………………………………………………………………… 60 4.4 数组的复制 …………………………………………………………………………… 61 4.4.1 复制数组的方法 ……………………………………………………………… 61 4.4.2 处理重复数据 ………………………………………………………………… 63 4.5 数组的比较 …………………………………………………………………………… 64 4.6 公共子数组 …………………………………………………………………………… 65 4.7 数组的更新 …………………………………………………………………………… 69 4.7.1 单值更新 ……………………………………………………………………… 69 4.7.2 动态更新 ……………………………………………………………………… 69 4.8 数组的前缀算法 ……………………………………………………………………… 70 4.9 动态遍历 ……………………………………………………………………………… 71 4.9.1 动态方法 ……………………………………………………………………… 71 4.9.2 编写动态方法 ………………………………………………………………… 72 4.9.3 多线程遍历 …………………………………………………………………… 73 4.10 数组与洗牌 ………………………………………………………………………… 74 4.11 数组与生命游戏 …………………………………………………………………… 76 习题 4 ……………………………………………………………………………………… 79 第5章 链表与LinkedList类 5.1 链表的特点 …………………………………………………………………………… 80 5.2 创建链表 ……………………………………………………………………………… 83 5.3 查询与相等 …………………………………………………………………………… 85 5.4 添加节点 ……………………………………………………………………………… 89 5.5 删除节点 ……………………………………………………………………………… 90 5.6 更新节点 ……………………………………………………………………………… 93 5.7 链表的视图 …………………………………………………………………………… 94 5.8 链表的排序 …………………………………………………………………………… 95 5.9 遍历链表 ……………………………………………………………………………… 97 5.10 链表与数组 ………………………………………………………………………… 103 5.11 不可变链表 ………………………………………………………………………… 104 5.12 编写简单的类创建链表 …………………………………………………………… 104 习题 5 …………………………………………………………………………………… 109 第6章 顺序表与ArrayList类 6.1 顺序表的特点 ……………………………………………………………………… 110 6.2 创建顺序表 ………………………………………………………………………… 111 6.3 顺序表的常用方法 ………………………………………………………………… 113 6.4 遍历顺序表 ………………………………………………………………………… 116 6.5 顺序表与筛选法 …………………………………………………………………… 118 6.6 顺序表与全排列 …………………………………………………………………… 120 6.7 顺序表与组合 ……………………………………………………………………… 125 6.8 顺序表与记录 ……………………………………………………………………… 130 6.9 Vector 类 …………………………………………………………………………… 132 习题 6 …………………………………………………………………………………… 135 第7章 栈与Stack类 7.1 栈的特点 …………………………………………………………………………… 136 7.2 栈的创建与独特的方法 …………………………………………………………… 137 7.3 栈与回文串 ………………………………………………………………………… 139 7.4 栈与递归 …………………………………………………………………………… 140 7.5 栈与 undo 操作 …………………………………………………………………… 141 7.6 栈与括号匹配 ……………………………………………………………………… 143 7.7 栈与深度优先搜索 ………………………………………………………………… 144 7.8 栈与后缀表达式 …………………………………………………………………… 147 习题 7 …………………………………………………………………………………… 152 第8章 队列与ArrayDeque类 8.1 队列的特点 ………………………………………………………………………… 153 8.2 队列的创建与独特的方法 ………………………………………………………… 154 8.3 队列与回文串 ……………………………………………………………………… 156 8.4 队列与加密、解密 ………………………………………………………………… 157 8.5 队列与约瑟夫问题 ………………………………………………………………… 158 8.6 队列与广度优先搜索 ……………………………………………………………… 159 8.7 队列与网络爬虫 …………………………………………………………………… 161 8.8 队列与排队 ………………………………………………………………………… 164 习题 8 …………………………………………………………………………………… 166 第9章 二叉树与TreeSet类 9.1 二叉树的基本概念 ………………………………………………………………… 167 9.2 遍历二叉树 ………………………………………………………………………… 168 9.3 二叉树的存储 ……………………………………………………………………… 170 9.4 平衡二叉树 ………………………………………………………………………… 172 9.5 二叉查询树和平衡二叉查询树 …………………………………………………… 172 9.6 TreeSet 树集………………………………………………………………………… 176 9.7 树集的基本操作 …………………………………………………………………… 178 9.8 树集的视图 ………………………………………………………………………… 182 9.9 树集与数据统计 …………………………………………………………………… 183 9.10 树集与过滤数据 …………………………………………………………………… 185 9.11 树集与节目单 ……………………………………………………………………… 187 习题 9 …………………………………………………………………………………… 188 第 10 章 散列表与 HashMap 类 10.1 散列结构的特点 …………………………………………………………………… 189 10.2 简单的散列函数 …………………………………………………………………… 191 10.3 HashMap 类 ……………………………………………………………………… 195 10.4 散列表的基本操作 ………………………………………………………………… 198 10.5 遍历散列表 ………………………………………………………………………… 200 10.6 统计字符、单词出现的次数和频率 ……………………………………………… 201 10.7 散列表与单件模式 ………………………………………………………………… 204 10.8 散列表与数据缓存 ………………………………………………………………… 206 10.9 TreeMap 类 ……………………………………………………………………… 207 10.10 Hashtable 类 …………………………………………………………………… 212 习题 10 …………………………………………………………………………………… 213 第 11 章 集合与 HashSet 类 11.1 集合的特点 ………………………………………………………………………… 214 11.2 HashSet 类 ………………………………………………………………………… 214 11.3 集合的基本操作 …………………………………………………………………… 216 11.4 集合与数据过滤 …………………………………………………………………… 218 11.5 正整数集合的生成集 ……………………………………………………………… 219 11.6 获得随机数的速度 ………………………………………………………………… 220 习题 11 …………………………………………………………………………………… 221 第 12 章 常用算法与 Collections 类 12.1 排序 ………………………………………………………………………………… 222 12.2 二分查找 …………………………………………………………………………… 224 12.3 反转与旋转 ………………………………………………………………………… 225 12.4 洗牌 ………………………………………………………………………………… 227 12.5 求*大值与*小值 ………………………………………………………………… 227 12.6 统计次数和频率 …………………………………………………………………… 228 习题 12 …………………………………………………………………………………… 230 第 13 章 图论 13.1 无向图 ……………………………………………………………………………… 231 13.2 有向图 ……………………………………………………………………………… 232 13.3 无向网络和有向网络 ……………………………………………………………… 233 13.4 图的存储 …………………………………………………………………………… 234 13.5 图的遍历 …………………………………………………………………………… 239 13.6 测试连通图 ………………………………………………………………………… 244 13.7 *短路径 …………………………………………………………………………… 247 13.8 *小生成树 ………………………………………………………………………… 251 习题 13 …………………………………………………………………………………… 254 第 14 章 经典算法思想 14.1 贪心算法 …………………………………………………………………………… 255 14.2 动态规划 …………………………………………………………………………… 258 14.3 回溯算法 …………………………………………………………………………… 261 习题 14 …………………………………………………………………………………… 265 附录 A 对象与接口的关键知识点 ………………………………… 266 参考文献 ………………………………………………………………………………… 273
展开全部

作者简介

耿祥义,1995年中国科学技术大学博士毕业,获理学博士学位。1997年从中山大学博士后流动站出站,现任大连交通大学教授。有多年教授Java语言的经验,已编写出版十余部教材。 张跃平,现任大连交通大学副教授。已编写和参编出版《Visual FoxPro课程设计》《Java 2实用教程》《JSP实用教程》《C语言程序设计教程》等多部教材。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航