标题：数据结构及应用
基本信息
作者： 沈华    
丛书名： 高等院校计算机教材系列 
出版社：机械工业出版社 
ISBN：9787111321552
上架时间：2010-12-22
出版日期：2011 年1月
开本：16开
页码：275
内容简介
本书系统地介绍各种常用的数据结构以及排序、查找的各种算法，阐述各种数据结构的逻辑关系、存储表示及运算，涵盖研究生入学考试大纲的所有内容。全书采用c语言作为数据结构和算法的描述语言，并对c语言描述的算法作了详细的注解和简要的性能分析。全书共分为六个部分：第一部分主要介绍什么是数据结构，什么是算法，它们之间有着怎样的联系，如何进行算法分析；第二部分针对后续学习的需要帮助读者温习一些相关知识；第三部分和第四部分分别重点介绍几种常见的线性结构和非线性结构；第五部分介绍在实际应用中最常遇到的两个运算——查找(即搜索)和排序，以及实现这两种运算的各种算法；第六部分则简要介绍文件和外排序的相关内容。
为了帮助读者直观、正确地理解各种数据结构和算法的要旨，本书利用大量的图表进行诠释，并通过典型的思考题、例题和习题来加深读者对相关知识的理解。
本书内容丰富、概念清楚、逻辑推理严谨、通俗易懂，可以作为计算机科学与技术及相关专业本科生的教材，也可以作为高等院校计算机专业硕士研究生入学考试的复习用书，同时还可以作为广大工程技术人员的参考资料。
目录
序 
前言 
教学建议 
第一部分概论 
第1章数据结构3 
1.1什么是数据3 
1.2什么是数据结构3 
1.2.1数据的逻辑结构3 
1.2.2数据的存储结构4 
1.2.3数据的运算5 
1.3什么是数据类型5 
1.4知识点小结6 
习题6 
第2章算法7 
2.1什么是算法7 
2.2算法的描述7 
2.3算法分析8 
2.3.1时间复杂度8 
2.3.2渐近符号9 
2.3.3空间复杂度10 
.2.3.4复杂度分析举例10 
2.4知识点小结13 
习题13 
第二部分预备知识 
第3章c语言、递归及存储分配方式16 
3.1c语言的相关内容16 
3.1.1函数的参数传递与结果返回16 
3.1.2结构体类型17 
3.1.3指针18 
3.2递归18 
3.3存储分配方式19 
3.4知识点小结20 
习题20 
第三部分线性结构 
第4章线性表22 
4.1线性表的类型定义22 
4.1.1线性表的逻辑结构22 
4.1.2线性表的基本运算22 
4.2线性表的顺序存储表示23 
4.2.1顺序表23 
4.2.2顺序表中基本运算的实现24 
4.3线性表的链式存储表示30 
4.3.1单链表30 
4.3.2单链表中基本运算的实现31 
4.4线性表的其他链式存储表示38 
4.4.1静态单链表38 
4.4.2双（向）链表41 
4.4.3循环单（向）链表43 
4.4.4循环双（向）链表46 
4.5线性表的应用举例47 
4.6顺序表和链表的比较48 
4.7知识点小结49 
习题49 
第5章栈51 
5.1栈的类型定义51 
5.1.1栈的逻辑结构51 
5.1.2栈的基本运算52 
5.2栈的顺序存储表示52 
5.2.1顺序栈52 
5.2.2顺序栈中基本运算的实现53 
5.3栈的链式存储表示55 
5.3.1链栈55 
5.3.2链栈中基本运算的实现55 
5.4两个方向生长的栈56 
5.5栈的应用举例57 
5.6知识点小结61 
习题61 
第6章队列63 
6.1队列的类型定义63 
6.1.1队列的逻辑结构63 
6.1.2队列的基本运算63 
6.2队列的链式存储表示64 
6.2.1链队列64 
6.2.2链队列中基本运算的实现65 
6.3队列的顺序存储表示66 
6.3.1顺序队列66 
6.3.2循环队列69 
6.3.3循环队列中基本运算的实现71 
6.4双端队列74 
6.5队列的应用举例74 
6.6知识点小结75 
习题76 
第7章串77 
7.1串的类型定义77 
7.1.1串的逻辑结构77 
7.1.2串的基本运算77 
7.2串的顺序存储表示78 
7.3串的堆分配存储表示80 
7.4串的块链存储表示81 
7.5串的模式匹配82 
7.6知识点小结88 
习题88 
第8章数组及广义表89 
8.1数组的类型定义89 
8.1.1数组的定义89 
8.1.2数组的性质89 
8.1.3数组的基本运算89 
8.2数组的顺序存储表示90 
8.3特殊矩阵的压缩存储92 
8.3.1特殊形状矩阵的压缩存储93 
8.3.2随机稀疏矩阵的压缩存储及其运算95 
8.4广义表104 
8.4.1广义表的基本概念104 
8.4.2广义表的基本运算105 
8.4.3广义表的存储结构106 
8.5知识点小结108 
习题108 
第四部分非线性结构 
第9章树110 
9.1概述110 
9.1.1树的定义及基本术语110 
9.1.2树的存储结构112 
9.2二叉树123 
9.2.1二叉树的定义123 
9.2.2二叉树的性质123 
9.2.3二叉树的存储结构128 
9.3二叉树的遍历132 
9.3.1遍历操作132 
9.3.2先序遍历132 
9.3.3中序遍历133 
9.3.4后序遍历134 
9.3.5层次遍历135 
9.3.6二叉树遍历的应用举例136 
9.4线索二叉树144 
9.4.1二叉树的线索化145 
9.4.2线索二叉树上的运算149 
9.5二叉树的应用156 
9.5.1哈夫曼树及其应用156 
9.5.2二叉排序树161 
9.5.3平衡二叉树163 
9.6树、森林与二叉树的相互转换166 
9.6.1树与二叉树的相互转换166 
9.6.2森林与二叉树的相互转换168 
9.7树、森林的遍历169 
9.7.1树的遍历169 
9.7.2森林的遍历169 
9.8树的应用举例170 
9.9知识点小结171 
习题172 
第10章图173 
10.1概述173 
10.1.1图的定义及基本术语173 
10.1.2图的存储结构179 
10.1.3图的创建184 
10.2图的遍历187 
10.2.1深度优先搜索遍历187 
10.2.2广度优先搜索遍历191 
10.2.3图遍历的应用举例193 
10.3生成树194 
10.3.1连通图的生成树194 
10.3.2连通网的最小生成树195 
10.4最短路径197 
10.4.1单源最短路径197 
10.4.2每对顶点间的最短路径201 
10.5有向无环图及其应用205 
10.5.1aov网与拓扑排序205 
10.5.2aoe网与关键路径207 
10.6知识点小结209 
习题209 
第五部分两种重要运算 
第11章查找212 
11.1查找的基本概念212 
11.2主要查找方法简介213 
11.3静态查找213 
11.3.1顺序查找213 
11.3.2二分查找215 
11.3.3分块查找219 
11.4动态查找220 
11.5散列查找227 
11.5.1散列表的概念228 
11.5.2散列函数的构造方法228 
11.5.3处理冲突的方法229 
11.5.4散列表的查找232 
11.6知识点小结234 
习题235 
第12章内排序236 
12.1排序的基本概念236 
12.2插入排序237 
12.2.1直接插入排序237 
12.2.2希尔排序241 
12.3交换排序242 
12.3.1冒泡排序242 
12.3.2快速排序244 
12.4选择排序247 
12.4.1直接选择排序247 
12.4.2树形选择排序248 
12.4.3堆排序249 
12.5归并排序254 
12.6分配排序255 
12.6.1箱排序255 
12.6.2基数排序255 
12.7各种内排序法的比较257 
12.8知识点小结257 
习题258 
第六部分文件的组织结构及排序 
第13章文件260 
13.1文件的基本概念260 
13.2顺序文件260 
13.3索引文件261 
13.4索引顺序文件262 
13.5散列文件267 
13.6多关键字文件268 
13.7知识点小结268 
习题268 
第14章外排序269 
14.1多路平衡归并269 
14.2置换选择排序272 
14.3归并树及最佳归并树274 
14.4知识点小结275 
习题275 
参考文献276