| 作者 |
| 叶核亚 |
| 丛书名 |
| 出版社 |
| 电子工业出版社 |
| ISBN |
| 9787121393051 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 本书是“十二五”普通高等教育本科国家级规划教材,也是“十三五”江苏省高等学校重点教材。本书全面系统地介绍数据结构的基础理论和算法设计方法,包括线性表、树、图等数据结构以及查找和排序算法,采用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 |