¥ 15.42 2.2折 ¥ 69 九品
仅1件
作者周幸妮、任智源、马彦卓、樊凯 著
出版社电子工业出版社
出版时间2016-03
版次1
装帧平装
货号A5
上书时间2024-12-15
数据结构是高等学校计算机及其相关专业的核心课程,是计算机程序设计的基础。本书按照“像外行一样思考,像专家一样实践”的解决问题的思维方法,列举大量实际或工程案例,从具体问题中引出抽象概念,运用类比、图形化描述等各种方式,对经典数据结构内容做深入浅出的介绍。在介绍数据结构和算法的基本概念和算法分析方法的基础之上,从软件开发的角度,通过应用背景或知识背景介绍、数据分析、函数设计、算法设计、测试调试等环节,分别对顺序表、链表、栈、队列、串、数组、树、图等基本类型的数据结构进行了分析和讨论;介绍数据的典型操作方法,如数据排序方法和查找方法;介绍常见的如递归法、分治法、动态规划、贪心法等经典算法。
周幸妮,西安电子科技大学副教授,长期从事“数据结构”、“C程序设计语言”等课程的教学工作,著有《C程序设计》等教材。
第1章 绪论1
1.1 从编程说起1
1.2 程序要处理的数据5
1.3 数据结构的引入11
1.4 数据结构的基本概念13
1.4.1 数据结构基本术语13
1.4.2 数据结构的三个要素13
1.5 如何设计算法16
1.5.1 算法的定义及表示方法16
1.5.2 算法设计与函数设计的关系17
1.5.3 软件设计描述方法18
1.5.4 算法设计的一般步骤19
1.6 如何评价算法的优劣21
1.6.1 算法的设计要求21
1.6.2 算法效率的度量方法22
1.7 算法性能的事前分析方法23
1.7.1 问题的规模与算法的策略23
1.7.2 算法效率的上限与下限25
1.7.3 渐进的上限――算法的时间
复杂度28
1.7.4 算法时间复杂度的综合讨论29
1.7.5 算法的空间效率分析方法33
1.8 算法性能综合考量37
1.9 本章小结38
习题38
第2章 结点逻辑关系为线性的结构――线性表41
2.1 从逻辑结构角度看线性表41
2.1.1 实际问题中的线性关系41
2.1.2 线性表的逻辑结构42
2.2 线性表的存储结构方法之一――顺序表43
2.2.1 顺序表的存储结构设计43
2.2.2 顺序表的运算46
2.2.3 顺序存储结构的讨论53
2.3 线性表的存储结构方法之二――链表53
2.3.1 单链表的存储56
2.3.2 单链表的运算60
2.3.3 单链表的讨论78
2.3.4 循环链表78
2.3.5 双向链表81
2.3.6 链表小结86
2.4 线性表的应用举例87
2.4.1 逆序输出单链表结点值87
2.4.2 一元多项式的相加88
2.5 顺序表和链表的比较95
2.6 本章小结96
习题97
第3章 运算受限的线性表――栈和队列100
3.1 栈――按照先入后出的方式管理的线性表100
3.1.1 栈处理模式的引入100
3.1.2 栈的逻辑结构104
3.1.3 栈的存储结构设计106
3.1.4 栈的操作107
3.1.5 各种栈结构的比较123
3.1.6 栈的应用举例123
3.2 队列――按照先入先出方式管理的线性表132
3.2.1 队列处理模式的引入133
3.2.2 队列的逻辑结构136
3.2.3 队列的顺序存储结构137
3.2.4 顺序队列的基本操作148
3.2.5 队列的链式存储结构152
3.2.6 链队列的基本操作153
3.2.7 各种队列结构的比较160
3.2.8 队列的应用举例161
3.3 本章小结171
习题172
第4章 内容特殊的线性表――多维数组与字符串175
4.1 多维数组175
4.1.1 数组的概念175
4.1.2 数组的存储结构177
4.2 矩阵的压缩存储181
4.2.1 对称矩阵的压缩存储182
4.2.2 三角矩阵的压缩存储183
4.2.3 对角矩阵的压缩存储183
4.2.4 稀疏矩阵的压缩存储185
4.3 字符串189
4.3.1 字符串的定义189
4.3.2 字符串的存储结构190
4.3.3 字符串的查找――模式匹配195
4.4 本章小结211
习题213
第5章 结点逻辑关系分层次的非线性结构――树216
5.1 实际问题中的树216
5.2 树的逻辑结构219
5.2.1 树的定义和基本术语219
5.2.2 树的操作定义222
5.3 树的存储结构222
5.3.1 树的连续存储方式223
5.3.2 树的链式存储方式224
5.4 二叉树的逻辑结构226
5.4.1 二叉树的概念229
5.4.2 二叉树的基本性质230
5.4.3 二叉树的操作定义231
5.5 二叉树的存储结构及实现231
5.5.1 二叉树的顺序结构232
5.5.2 二叉树的链式存储
结构――二叉链表235
5.5.3 建立动态二叉链表236
5.6 二叉树结点的查找 问题――树的遍历240
5.6.1 树的广度优先遍历242
5.6.2 树的深度优先遍历244
5.6.3 树的遍历的应用255
5.7 树的应用259
5.7.1 表达式树259
5.7.2 线索二叉树260
5.7.3 哈夫曼树及哈夫曼编码265
5.8 广义表278
5.8.1 广义表的定义279
5.8.2 广义表的存储281
5.8.3 广义表的基本运算287
5.9 本章小结293
习题295
第6章 结点逻辑关系任意的非线性结构――图299
6.1 实际问题中的图及抽象299
6.2 图的逻辑结构304
6.2.1 图的定义和基本术语304
6.2.2 图的操作定义307
6.3 图的存储结构及实现308
6.3.1 图的数组表示法1―― 邻接矩阵308
6.3.2 图的数组表示法2―― 边集数组310
6.3.3 图的链表表示法1――邻接表311
6.3.4 图的链表表示法2―― 十字链表316
6.3.5 图的链表表示法3――邻接多重表317
6.3.6 图各种存储结构的归结比较319
6.4 图的基本操作320
6.4.1 邻接矩阵的操作320
6.4.2 邻接表的操作322
6.5 图的顶点查找问题――图的遍历328
6.5.1 图的广度优先遍历BFS329
6.5.2 图的深度优先遍历DFS334
6.5.3 图的遍历小结340
6.6 图的经典应用――图中的树问题340
6.6.1 生成树342
6.6.2 最小生成树MST343
6.6.3 求最小生成树算法1――Prim 算法344
6.6.4 求最小生成树算法2――Kruskal算法349
6.6.5 生成树算法小结356
6.7 图的经典应用――最短路径问题357
6.7.1 最短路径问题的引入357
6.7.2 单源最短路径算法――Dijkstra算法359
6.7.3 各顶点对间最短路径算法――Floyd算法364
6.7.4 最短路径问题小结369
6.8 图的经典应用――活动顶点与活动边的问题370
6.8.1 图的活动顶点排序问题的引入370
6.8.2 AOV网与拓扑排序――活动顶点排序问题373
6.8.3 AOE网与关键路径――活动边最长问题378
6.8.4 活动顶点与活动边问题小结390
6.9 本章小结390
习题391
第7章 数据的处理方法――排序技术397
7.1 概述397
7.1.1 排序的基本概念397
7.1.2 排序算法的分类399
7.2 插入排序399
7.2.1 直接插入排序399
7.2.2 希尔排序402
7.3 交换排序404
7.3.1 冒泡排序404
7.3.2 快速排序406
7.4 选择排序409
7.4.1 简单选择排序410
7.4.2 堆排序411
7.5 归并排序415
7.6 分配排序418
7.6.1 桶排序418
7.6.2 基数排序421
7.7 各种排序算法的比较424
7.8 本章小结427
习题428
第8章 数据的处理――索引与查找技术431
8.1 索引的基本概念433
8.1.1 索引的定义433
8.1.2 索引的逻辑特征434
8.1.3 索引的主要操作435
8.2 线性索引技术435
8.2.1 稠密索引435
8.2.2 分块索引436
8.2.3 多重表437
8.2.4 倒排表439
8.3 树形索引441
8.3.1 二叉排序树441
8.3.2 B树448
8.4 查找概述452
8.4.1 查找的基本概念452
8.4.2 查找算法的性能453
8.5 线性表的查找技术453
8.5.1 顺序查找453
8.5.2 有序表查找454
8.5.3 索引查找459
8.6 树表的查找技术461
8.6.1 二叉排序树461
8.6.2 B树462
8.6.3 在非数值有序表上的查找――字典树462
8.7 散列表的查找技术464
8.7.1 散列概述465
8.7.2 散列函数的设计467
8.7.3 处理冲突的方法469
8.7.4 散列查找的性能分析473
8.8 本章小结474
习题476
第9章 经典算法479
9.1 递归算法479
9.1.1 递归的概念及要素479
9.1.2 递归的应用场景481
9.1.3 递归的计算机实现482
9.1.4 递归方法特点分析483
9.1.5 递归算法实例485
9.1.6 递归小结487
9.2 分治算法487
9.2.1 分治是什么487
9.2.2 分治法的适用条件488
9.2.3 分治问题的类型488
9.2.4 分治法小结490
9.3 动态规划491
9.3.1 什么是动态规划491
9.3.2 动态规划的解题方法493
9.3.3 动态规划解题实例495
9.3.4 动态规划小结500
9.4 贪心算法501
9.4.1 贪心算法是什么501
9.4.2 贪心算法经典问题502
9.4.3 贪心算法小结504
9.5 回溯法504
9.5.1 回溯法是什么504
9.5.2 回溯法经典问题507
9.5.3 回溯法小结509
9.6 分支限界法509
9.6.1 什么是分支限界法509
9.6.2 分支限界法的求解思想511
9.6.3 分支限界法经典问题512
9.6.4 分支限界法小结514
9.7 本章小结514
习题516
附录A 数据的联系图517
附录B 自定义头文件的加入方法518
附录C 软件设计说明书格式519
参考文献521
— 没有更多了 —
以下为对购买帮助不大的评价