本书系统介绍如何用面向对象的方法来设计和实现传统的数据结构,它把面向对象程序设计方法与数据结构和算法有机地结合起来,并强调抽象数据类型的概念,说明如何用“规格说明”定义抽象数据类型的操作,并且清楚地区分抽象数据类型的规格说明及其基于合适的数据结构与算法的实现。该书用精心设计的Java代码表示算法,说明如何分析它们的效率,并且尽量避免涉及高深的理论和数学知识。书中配有大量的插图,便于学生直观地理解数据结构与算法。每一章都附有适量的习题(全部是算法设计题),帮助学生加深对各章内容的认识。
网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 实用数据结构教程(Java语言描述)/高等院校计算机教材系列 |
分类 | 教育考试-大中专教材-成人教育 |
作者 | 周大庆 |
出版社 | 人民邮电出版社 |
下载 | ![]() |
简介 | 编辑推荐 本书系统介绍如何用面向对象的方法来设计和实现传统的数据结构,它把面向对象程序设计方法与数据结构和算法有机地结合起来,并强调抽象数据类型的概念,说明如何用“规格说明”定义抽象数据类型的操作,并且清楚地区分抽象数据类型的规格说明及其基于合适的数据结构与算法的实现。该书用精心设计的Java代码表示算法,说明如何分析它们的效率,并且尽量避免涉及高深的理论和数学知识。书中配有大量的插图,便于学生直观地理解数据结构与算法。每一章都附有适量的习题(全部是算法设计题),帮助学生加深对各章内容的认识。 内容推荐 本书以面向对象语言Java作为描述语言,系统介绍如何用面向对象的方法来设计和实现传统的数据结构,内容包括数组、链表、栈、队列、表、二叉树、优先队列、堆、集合、映射、散列表、树和图等基本数据结构,以及插入、删除、遍历、查找、归并和排序等基本算法。本书突出了抽象数据类型的概念,提供了大量精心设计的示例程序,不仅讲述了常用数据结构的具体实现,而且抽象出一般的设计原则。 本书选材精当、结构新颖、深入浅出、简明实用,可作为高等院校计算机专业和相近专业本科生“数据结构”课程的教材或参考书,也可供计算机应用领域的工程技术人员参考。 目录 第1章 绪论 1.1 数据结构与数据类型 1.2 抽象数据类型 1.2.1 ADT的规格说明 1.2.2 ADT的实现 1.2.3 Java中ADT的规格说明与实现 1.3 串抽象数据类型 1.3.1 串ADT的规格说明 1.3.2 串ADT的实现 习题 第2章 算法 2.1 问题、算法和程序 2.2 算法的代价 2.3 算法分析 2.3.1 规模与基本操作 2.3.2 运行时间和增长率 2.3.3 最佳、最差和平均情况 2.4 大Ο符号 2.4.1 大Ο的定义 2.4.2 大Ο的性质 2.4.3 大Ο的计算 2.5 空间代价 2.6 递归算法 习题 第3章 数组 3.1 数组 3.1.1 子数组 3.1.2 有序数组 3.1.3 二维数组 3.2 插入 3.3 删除 3.4 查找 3.4.1 线性查找 3.4.2 二分查找 3.4.3 查找算法比较 3.5 归并 3.6 排序 3.6.1 冒泡排序 3.6.2 选择排序 3.6.3 插入排序 3.6.4 归并排序 3.6.5 快速排序 3.6.6 排序算法比较 习题 第4章 链表 4.1 链表 4.1.1 单向链表 4.1.2 双向链表 4.1.3 有序链表 4.1.4 循环链表 4.2 插入 4.2.1 单向链表插入 4.2.2 双向链表插入 4.3 删除 4.3.1 单向链表删除 4.3.2 双向链表删除 4.4 查找 习题 第5章 栈与队列 5.1 栈 5.1.1 栈的概念 5.1.2 栈的应用 5.1.3 栈ADT的规格说明 5.1.4 用数组实现栈 5.1.5 用单向链表实现栈 5.2 队列 5.2.1 队列的概念 5.2.2 队列的应用 5.2.3 队列ADT的规格说明 5.2.4 用数组实现队列 5.2.5 用单向链表实现队列 5.2.6 基数排序 习题 第6章 表 6.1 表的概念 6.2 表的应用 6.3 表ADT的规格说明 6.4 用数组实现表 6.5 用单向链表实现表 习题 第7章 二叉树 7.1 二叉树 7.1.1 二叉树的概念 7.1.2 满二叉树 7.1.3 平衡二叉树 7.1.4 二叉树结点类 7.2 二叉树的遍历 7.3 二叉查找树 7.3.1 二叉查找树的概念 7.3.2 查找 7.3.3 插入 7.3.4 删除 7.4 二叉查找树的平衡化重构 7.5 将二叉查找树保存到文件 7.5.1 使用前序遍历把二叉查找树保存到文件 7.5.2 使用中序遍历把二叉查找树保存到文件 习题 第8章 优先队列与堆 8.1 优先队列的概念 8.2 优先队列的应用 8.3 优先队列ADT的规格说明 8.4 优先队列的实现 8.5 完全二叉树与堆 8.5.1 完全二叉树 8.5.2 堆 8.6 用堆实现优先队列 8.7 堆排序 8.8 赫夫曼编码树 8.8.1 建立赫夫曼编码树 8.8.2 赫夫曼编码及其用法 习题 第9章 集合与映射 9.1 集合 9.1.1 集合的概念 9.1.2 集合的应用 9.1.3 集合ADT的规格说明 9.1.4 集合的实现 9.2 映射 9.2.1 映射的概念 9.2.2 映射的应用 9.2.3 映射ADT的规格说明 9.2.4 映射的实现 习题 第10章 散列表 10.1 散列表原理 10.2 闭桶散列表 10.2.1 插入 10.2.2 查找 10.2.3 删除 10.2.4 分析 10.2.5 设计 10.2.6 再散列 10.3 开桶散列表 10.3.1 插入 10.3.2 查找 10.3.3 删除 10.3.4 分析 10.3.5 设计 10.3.6 双散列 10.4 用散列表实现集合与映射 习题 第11章 树 11.1 树的概念 11.2 树的应用 11.3 左子结点/右兄弟结点表示法 11.4 树的遍历 11.5 父指针表示法 11.6 UNION/FIND算法与等价类问题 习题 第12章 图 12.1 图的概念 12.2 图的应用 12.3 图ADT的规格说明 12.4 图的实现 12.4.1 用邻接矩阵实现图 12.4.2 用邻接表实现图 12.5 图的遍历 12.5.1 深度优先搜索 12.5.2 广度优先搜索 12.6 拓扑排序 12.6.1 基于递归的拓扑排序算法 12.6.2 基于队列的拓扑排序算法 12.7 最短路径问题 12.7.1 单源最短路径 12.7.2 每对顶点间的最短路径 12.8 最小生成树 12.8.1 Prim算法 12.8.2 Kruskal算法 12.9 迷宫的生成和求解 12.9.1 迷宫的表示 12.9.2 用DFS算法生成迷宫 12.9.3 用Prim算法生成迷宫 12.9.4 用Kruskal算法生成迷宫 12.9.5 迷宫求解算法 习题 附录A 数学预备知识 附录B Java语言概要 附录C 课程实验 参考文献 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。