当前位置:首页 > 图书中心 > 教材 > 高职教材 > 数据结构Java应用案例教程
数据结构Java应用案例教程
ISBN:978-7-5624-8277-2
高等职业院校及应用型本科教材
作者:袁开友 郑孝宗
编辑:章可
字数(千):412 页数:251 印次:1-1
开本:16开  平装
出版时间: 2014-08-22
定价:¥33

图书推荐

内容简介

本书通过具体的编程应用案例,系统地介绍了各种类型数据结构的逻辑结构、存储结构及相关的算法。全书共分9章,内容包括绪论、线性表、栈和队列、串、数组和广义表、树与二叉树、图、查找和排序等,此外本书还附录了“应用实践”拓展训练内容及参考代码,供学生参考和练习。全书采用 Java 应用案例驱动教学,讲解数据结构、算法及应用,内容翔实,层次清晰,实例丰富,讲解深入浅出。
本书作为计算机及相关专业本、专科数据结构课程的教材,也适合各类成人教育相关课程使用,还可以供从事计算机软件开发和应用的工程技术人员阅读、参考。

目录
■ 第 1 章 绪论… …………………………………………………………… 1 1.1 引言… ……………………………………………………………… 1 1.2 基本概念和术语… ………………………………………………… 4 1.3 算法的概念及其特性………………………………………………… 6 1.3.1 算法的定义 ……………………………………………… 6 1.3.2 算法的组成要素 ………………………………………… 7 1.3.3 算法的基本性质 ………………………………………… 8 1.4 算法设计的要求……………………………………………………… 8 1.5 算法的描述方法……………………………………………………… 9 1.6 算法分析和评价……………………………………………………… 11 1.6.1 算法的时间复杂度 ……………………………………… 12 1.6.2 算法的空间复杂度 ……………………………………… 14 本章小结 ………………………………………………………………… 15 习题 ……………………………………………………………………… 16 ■ 第 2 章 线性表 ………………………………………………………… 20 2.1 线性表的概念与基本操作 ………………………………………… 20 2.2 顺序表 ……………………………………………………………… 21 2.2.1 顺序表的概念 …………………………………………… 22 2.2.2 顺序表基本操作及实现 ………………………………… 23 2.3 单链表 ……………………………………………………………… 29 2.3.1 单链表的概念 …………………………………………… 29 2.3.2 单链表基本操作及实现 ………………………………… 30 2.4 循环链表 …………………………………………………………… 36 2.4.1 循环链表的概念 ………………………………………… 36 2.4.2 循环链表基本操作及实现 ……………………………… 36 2.5 双链表 ……………………………………………………………… 39 2.5.1 双链表的概念 …………………………………………… 39 2.5.2 双链表基本操作及实现 ………………………………… 40 本章小结 ………………………………………………………………… 44 习题 ……………………………………………………………………… 45 ■ 第 3 章 栈和队列 ……………………………………………………… 47 3.1 栈… ………………………………………………………………… 47 3.1.1 栈的概念及基本操作 …………………………………… 47 3.1.2 顺序栈 …………………………………………………… 48 3.1.3 链栈 ……………………………………………………… 52 3.1.4 递归和栈 ………………………………………………… 57 3.2 队列… ……………………………………………………………… 59 3.2.1 队列概念及基本操作 …………………………………… 59 3.2.2 顺序队列 ………………………………………………… 60 3.2.3 循环队列 ………………………………………………… 63 3.2.4 链式队列 ………………………………………………… 65 本章小结…………………………………………………………………… 69 习题………………………………………………………………………… 70 ■ 第 4 章 串 ……………………………………………………………… 73 4.1 串的概念和基本操作………………………………………………… 73 4.2 …串的表示与实现… ………………………………………………… 74 4.2.1 顺序定长存储及实现 …………………………………… 75 4.2.2 串的堆存储及实现 ……………………………………… 76 4.2.3 串的链式存储及实现 …………………………………… 79 4.3 串的模式匹配算法 ………………………………………………… 81 4.3.1 Brute-Force 模式匹配算法 …………………………… 82 4.3.2 KMP 模式匹配算法 ……………………………………… 83 本章小结 ………………………………………………………………… 86 习题 ……………………………………………………………………… 87 ■ 第 5 章 数组与广义表 ………………………………………………… 88 …5.1 …数组 ……………………………………………………………… 88 5.1.1 数组的概念 …………………………………………… 88 5.1.2 数组的存储 …………………………………………… 88 5.1.3 矩阵的压缩 …………………………………………… 91 5.2 广义表 …………………………………………………………… 103 5.2.1 广义表的定义 …………………………………………… 103 5.2.2 广义表的特性 …………………………………………… 104 5.2.3 广义表的存储结构 ……………………………………… 104 本章小结 ………………………………………………………………… 106 习题 ……………………………………………………………………… 107 ■ 第 6 章 树和二叉树 …………………………………………………… 108 6.1 树……………………………………………………………………… 109 6.1.1 树的概念及基本术语 …………………………………… 109 6.1.2 树的逻辑表示方法 ……………………………………… 110 6.1.3 树的存储结构 …………………………………………… 110 6.2 二叉树 ……………………………………………………………… 112 6.2.1 二叉树的概念 …………………………………………… 112 6.2.2 二叉树的性质 …………………………………………… 113 6.2.3 二叉树存储结构 ………………………………………… 115 6.2.4 二叉树的遍历 …………………………………………… 116 6.3 线索二叉树 ………………………………………………………… 119 6.3.1 线索二叉树的概念 ……………………………………… 119 6.3.2 线索化二叉树 …………………………………………… 119 6.3.3 遍历线索化二叉树 ……………………………………… 122 6.4 哈夫曼树 …………………………………………………………… 123 6.4.1 哈夫曼树概述 …………………………………………… 123 6.4.2 哈夫曼树的构造算法 …………………………………… 124 6.4.3 哈夫曼编码 ……………………………………………… 125 6.5 树、森林和二叉树 ………………………………………………… 126 6.5.1 二叉树与树、森林之间的转换 ………………………… 126 6.5.2 树、森林的遍历 ………………………………………… 128 本章小结 ………………………………………………………………… 130 习题 ……………………………………………………………………… 131 ■ 第 7 章 图 ……………………………………………………………… 134 7.1 图的概念及基本术语………………………………………………… 135 7.2 图的存储结构………………………………………………………… 136 7.2.1 邻接矩阵表示法 ………………………………………… 137 7.2.1 邻接表表示法 …………………………………………… 138 7.3 图的遍历……………………………………………………………… 139 7.3.1 深度优先搜索法 ………………………………………… 140 7.3.2 广度优先搜索法 ………………………………………… 142 7.4 图的应用……………………………………………………………… 145 7.4.1 最小生成树 ……………………………………………… 145 7.4.2 最短路径 ………………………………………………… 152 7.4.3 AOV 网与拓扑排序 ……………………………………… 157 7.4.4 AOE 网与关键路径 ……………………………………… 161 本章小结…………………………………………………………………… 165 习题………………………………………………………………………… 166 ■ 第 8 章 查找 …………………………………………………………… 168 8.1 查找的概念及基本术语……………………………………………… 168 8.2 线性表查找…………………………………………………………… 169 8.2.1 顺序查找 ………………………………………………… 169 8.2.2 二分查找 ………………………………………………… 171 8.2.3 分块查找 ………………………………………………… 173 8.2.4 顺序表三种查找方法的比较 …………………………… 178 8.3 树表的查找 ………………………………………………………… 178 8.4 哈希表的查找 ……………………………………………………… 185 本章小结 ………………………………………………………………… 191 习题 ……………………………………………………………………… 192 ■ 第 9 章 排序 …………………………………………………………… 193 9.1 排序的概念及基本术语……………………………………………… 193 9.2 插入排序……………………………………………………………… 194 9.2.1 直接插入排序 …………………………………………… 194 9.2.2 二分插入排序 …………………………………………… 197 9.2.3 希尔排序 ……………………………………………………200 9.3 交换排序 …………………………………………………………… 202 9.3.1 冒泡排序 ………………………………………………… 202 9.3.2 快速排序 ………………………………………………… 205 9.4 选择排序……………………………………………………………… 206 9.4.1 直接选择排序 …………………………………………… 206 9.4.2 堆排序 …………………………………………………… 209 9.5 归并排序……………………………………………………………… 210 9.6 基数排序……………………………………………………………… 213 9.7 各种内排序方法的比较和选择……………………………………… 213 本章小结…………………………………………………………………… 214 习题………………………………………………………………………… 215 ■ 附录 A 应用实践 ……………………………………………………… 218 实践 1 顺序表的建立与基本操作… …………………………………… 218 实践 2 单链表的建立与基本操作… …………………………………… 219 实践 3 顺序栈的建立与基本操作… …………………………………… 219 实践 4 顺序队列的建立与基本操作… ………………………………… 219 实践 5 线性表查找… …………………………………………………… 220 实践 6 内排序… ………………………………………………………… 220 ■ 附录 B 各章习题参考答案 …………………………………………… 222 ■ 附录 C 应用实践参考代码 …………………………………………… 234 实践 1 顺序表的建立与基本操作… …………………………………… 234 实践 2 单链表的建立与基本操作… …………………………………… 237 实践 3 顺序栈的建立与基本操作… …………………………………… 240 实践 4 顺序队列的建立与基本操作… ………………………………… 242 实践 5 线性表查找… …………………………………………………… 244 实践 6 内排序… ………………………………………………………… 247 ■ 参考文献 ………………………………………………………………… 251