注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计数据结构与算法(Java版 第5版)

数据结构与算法(Java版 第5版)

数据结构与算法(Java版 第5版)

定 价:¥59.80

作 者: 叶核亚 著
出版社: 电子工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787121393051 出版时间: 2020-08-01 包装: 平装
开本: 16开 页数: 358 字数:  

内容简介

  本书是“十二五”普通高等教育本科国家级规划教材,也是“十三五”江苏省高等学校重点教材。本书全面系统地介绍数据结构的基础理论和算法设计方法,包括线性表、树、图等数据结构以及查找和排序算法,采用Java语言以面向对象方法设计并实现了这些数据结构及算法。本书精选基础理论内容,重点突出数据结构设计和算法设计,内容涉及的广度和深度符合计算机专业本科的培养目标。通过降低理论难度和抽象性、增强实际应用、强化实践环节等措施,展现“理论基础厚实,采用面向对象程序设计思想,加强工程应用能力培养”的鲜明特色,从而达到增强学生的理解能力和培养应用能力的教学目标。本书配套教学资源齐全。本书可作为普通高等学校计算机及相近专业本科的数据结构、算法课程教材,也可作为从事计算机软件开发和工程应用人员的参考书。

作者简介

  叶核亚,女,南京工程学院计算机工程学院教师,毕业于南京大学。多年来一直教授Java程序设计”、数据结构”等课程,编写的教材荣获普通高等教育十一五”国家级规划教材、”十二五普通高等教育本科国家级规划教材等。

图书目录

目 录
第1章 绪论\t1
1.1 数据结构的基本概念\t1
1.1.1 为什么要学习数据结构\t1
1.1.2 什么是数据结构\t2
1.1.3 数据类型与抽象数据类型\t5
1.2 算法\t9
1.2.1 什么是算法\t9
1.2.2 算法分析\t11
1.2.3 算法设计与实现\t13
习题1\t16
实验1 算法设计与分析\t17
第2章 线性表\t18
2.1 线性表的定义及抽象数据类型\t18
2.2 线性表的顺序存储结构和实现\t20
2.2.1 线性表的顺序存储结构\t20
2.2.2 顺序表类的设计及应用\t21
2.3 线性表的存储和实现\t32
2.3.1 线性表的链式存储结构\t32
2.3.2 单链表\t33
2.3.3 循环双链表\t43
2.4 排序线性表的存储和实现\t46
2.4.1 比较对象大小的方法\t46
2.4.2 排序顺序表\t48
2.4.3 排序单链表\t54
2.5 线性表的应用:多项式的存储和运算\t55
2.5.1 一元多项式的存储和运算\t55
2.5.2 二元多项式的存储和运算\t60
习题2\t62
实验2 线性表的基本操作\t63
第3章 字符串\t65
3.1 字符串抽象数据类型\t65
3.2 字符串的顺序存储结构和实现\t67
3.2.1 常量字符串\t67
3.2.2 变量字符串\t75
3.3 字符串的模式匹配\t79
3.3.1 Brute-Force模式匹配算法\t80
3.3.2 模式匹配应用\t82
3.3.3 KMP模式匹配算法\t84
习题3\t90
实验3 字符串的基本操作和模式匹配算法\t91
第4章 栈、队列和递归\t94
4.1 栈\t94
4.1.1 栈的定义及抽象数据类型\t94
4.1.2 栈的存储结构和实现\t95
4.1.3 栈的应用\t97
4.2 队列\t105
4.2.1 队列的定义及抽象数据类型\t105
4.2.2 队列的存储结构和实现\t106
4.2.3 队列的应用\t111
4.2.4 优先队列\t112
4.3 递归\t114
习题4\t120
实验4 栈、队列和递归算法\t120
第5章 数组和广义表\t124
5.1 数组\t124
5.2 特殊矩阵的压缩存储\t129
5.2.1 三角矩阵、对称矩阵和对角矩阵的压缩存储\t129
5.2.2 稀疏矩阵的压缩存储\t131
5.3 广义表\t141
5.3.1 广义表定义及抽象数据类型\t141
5.3.2 广义表的存储结构和实现\t143
习题5\t148
实验5 矩阵和广义表的存储和运算\t149
第6章 二叉树\t151
6.1 二叉树概述\t151
6.1.1 二叉树的定义、性质及抽象数据类型\t151
6.1.2 二叉树的存储结构\t154
6.1.3 二叉树的二叉链表实现\t155
6.2 树\t169
6.2.1 树的定义及抽象数据类型\t169
6.2.2 树的存储结构\t171
6.2.3 树/森林的父母孩子兄弟链表实现\t172
6.3 二叉树应用\t176
6.3.1 Huffman树\t176
6.3.2 表达式二叉树\t185
习题6\t189
实验6 二叉树和树的基本操作\t191
第7章 图\t194
7.1 图的概念和抽象数据类型\t194
7.2 图的存储结构和实现\t201
7.2.1 抽象图类,存储顶点集合\t201
7.2.2 图的邻接矩阵存储结构和实现\t202
7.2.3 图的邻接表存储结构和实现\t207
7.2.4 图的邻接多重表存储结构\t212
7.3 图的遍历\t212
7.3.1 图的深度优先遍历\t213
7.3.2 图的广度优先遍历\t216
7.4 最小生成树\t218
7.5 最短路径\t222
7.5.1 单源最短路径\t223
7.5.2** 每对顶点间的最短路径\t227
习题7\t230
实验7 图的存储结构和操作算法\t231
第8章 查找\t234
8.1 查找基础\t234
8.1.1 查找概述\t234
8.1.2 二分法查找\t237
8.2 索引\t239
8.2.1 分块与索引\t239
8.2.2 静态索引\t241
8.2.3 动态索引\t245
8.3 散列表\t246
8.4 二叉排序树和平衡二叉树\t251
8.4.1 二叉排序树\t251
8.4.2 二叉树采用三叉链表存储结构\t258
8.4.3** 平衡二叉树\t259
8.5 映射\t262
8.5.1 映射的定义及接口\t262
8.5.2 散列映射\t264
8.5.3 树映射\t266
习题8\t269
实验8 集合和映射的数据结构设计和查找算法设计\t270
第9章 排序\t274
9.1 插入排序\t274
9.1.1 直接插入排序\t274
9.1.2 希尔排序\t276
9.2 交换排序\t278
9.2.1 冒泡排序\t278
9.2.2 快速排序\t280
9.3 选择排序\t282
9.3.1 直接选择排序\t282
9.3.2 堆排序\t283
9.4 归并排序\t286
9.5 线性表的排序算法\t288
9.5.1 顺序表的排序算法\t289
9.5.2 单链表的排序算法\t289
9.5.3 循环双链表的排序算法\t292
习题9\t293
实验9 排序算法设计\t294
第10章 综合应用设计\t296
10.1 Java集合框架\t296
10.1.1 Arrays数组类\t296
10.1.2 集合\t297
10.1.3 映射\t304
10.2 实现迭代器\t305
10.2.1 设计基于迭代器的通用操作\t305
10.2.2 提供迭代器的类\t307
10.3 算法设计策略\t309
10.3.1 分治法\t309
10.3.2 动态规划法\t311
10.3.3 贪心法\t313
10.3.4 回溯法\t323
10.4 课程设计的目的、要求和选题\t337
附录A ASCII字符与Unicode值\t340
附录B Java关键字\t341
附录C Java基本数据类型\t342
附录D Java运算符及其优先级\t343
附录E Java类库(部分)\t344
E.1 java.lang语言包\t344
E.2 java.util实用包\t347
附录F MyEclipse常用菜单命令\t349
参考文献\t350

本目录推荐