高级搜索  |  搜索帮助
最近的浏览历史
购买此书的人还购买过
书  名:数据结构与算法
  • 作  者: 冯贵良
  • 出版时间: 2016-09-01
  • 出 版 社: 清华大学出版社
  • 字  数: 387 千字
  • 印  次: 1-1
  • 印  张: 16.75
  • 开  本: 16开
  • ISBN: 9787302432166
  • 装  帧: 平装
  • 定  价:¥35.00
电子书价:¥24.50 折扣:70折 节省:¥10.50 vip价:¥24.50 电子书大小:19.03M
配套资源下载:
  • 名称
  • 说明
  • 权限
  • 文件大小
  • 点击图标下载
  • 图书样章
  • 所有用户
  • 256K
共有商品评论0条 查看评论摘要
内容简介
  本书把数据结构的原理和算法分析技术有机地结合在一起,系统地介绍各种数据结构及各种数据结构的相关算法,使用C语言作为算法描述语言,通过C语言实现了具体算法,能够更好地让学生理解各种数据结构的基本描述方法,借助抽象数据类型,从逻辑结构的角度系统地介绍线性表、栈、队列、串、数组、矩阵、广义表、二叉树、树和图等各种基本数据结构;从算法的角度讨论查找方法和排序算法;从应用的角度介绍了一些具体的应用在C语言下的代码实现。
全书共分三部分: 第1部分(第1章)为基本概念介绍部分,介绍数据结构、抽象数据类型以及算法的基本概念;第2部分(第2~8章)为基本数据结构部分,重点介绍线性表、栈、队列、串、数组、矩阵、广义表、二叉树、树和图等各种基本数据结构,并且附带有具体的算法实现的代码;第3部分(第9章和第10章)为算法应用设计,重点介绍顺序查找、折半查找、插值查找、斐波那契查找、分块查找等静态查找的具体算法,介绍在二叉排序树、平衡二叉树上的动态查找算法以及哈希表查找算法等。全书提供了大量应用实例,每章后均附有习题。
本书适合作为高等院校计算机、软件工程专业高年级本科生、研究生的教材,同时可供对数据结构比较熟悉并且对软件设计有所了解的开发人员、广大科技工作者和研究人员参考
前言
  数据结构的概念最早由C.A.R.Hoare于1966年提出。在他的经典论文《数据结构笔记》中,首次系统地论述了一组数据结构的构造、表示和操作等问题。1973年,E.Knuth在《计算机程序设计技巧》第一卷中给出了关于“信息结构”的系统论述。1976年,N.Wirth用“算法+数据结构=程序”这个公式表达了算法与数据结构的联系和它们在程序设计中的地位,从此确立了数据结构在计算机相关专业中的核心基础课程地位。
数据结构的研究不仅涉及计算机硬件(编码理论、存储装置和存取方法)的研究范围,而且和计算机软件的研究有着密切的关系,因此数据结构可以认为是介于数学、计算机硬件和计算机软件之间的一门核心课程。在计算机科学中,它不仅是程序设计的基础,而且是设计和实现操作系统、数据库系统和大型应用系统的重要基础。
“数据结构”课程的主要任务是讨论现实世界中数据的各种逻辑结构、在计算机中的存储结构以及进行各种非数值运算的算法。本书主要内容包括线性表、栈、队列、串、数组、广义表、树和二叉树、图、动态存储管理、查找、排序。
通过本课程的学习,使学生掌握数据组织、存储和处理的常用方法及基于各类常见数据结构的算法设计与分析,进一步强化学生的编程能力,为以后进行软件开发和学习后续专业课程打下基础。
在长期的教学过程中,我们认为,“数据结构”是一门兼具理论性与实践性的课程,在掌握程序设计语言后,本课程还是一门加强与提高学生程序设计能力的重要课程。因此,本书以传统的数据结构的主要内容为主线,在充分讨论结构的逻辑特征与存储表示的基础上,用C语言完成数据结构的描述和实现。同时,我们更加强调数据结构的应用,对不同的数据结构类型设计多个应用实例,每一算法或程序的编写力求高效、易读,并遵循程序设计的规范,从而帮助读者将数据结构与工程应用有机地结合起来。
在专业程序员的成长过程中,对于数据结构与算法的学习至关重要。虽然有许许多多关于数据结构与算法的书籍,但是本书把数据结构的原理和算法分析技术有机地结合在一起,系统地介绍了各种类型的数据结构和排序、检索的各种算法,以C语言作为算法描述语言,通过C语言实现具体算法,能够更好地让学生理解各种数据结构的基本描述方法,借助抽象数据类型,从逻辑结构的角度系统地介绍线性表、栈、队列、串、数组、矩阵、广义表、二叉树、树和图等各种基本数据结构;从算法的角度讨论查找方法和排序算法;从应用的角度介绍一些具体的算法在C语言下的实现代码。
书中不当之处,恳请广大读者指正。


编者2016年7月

目录
第1章绪论1
1.1数据结构的概念1
1.1.1为什么要学习数据结构1
1.1.2有关概念和术语4
1.1.3数据结构课程的内容6
1.2数据类型与抽象数据类型7
1.2.1数据类型7
1.2.2抽象数据类型7
1.3算法和算法分析8
1.3.1算法特性8
1.3.2算法描述9
1.3.3算法性能分析与度量9
第2章线性表11
2.1线性表的逻辑结构11
2.1.1线性表的定义11
2.1.2线性表的基本操作11
2.2线性表的顺序存储及运算实现12
2.2.1顺序表12
2.2.2顺序表上基本运算的实现14
2.2.3顺序表应用举例18
2.3线性表的链式存储和运算实现20
2.3.1单链表20
2.3.2单链表上基本运算的实现22
2.3.3循环链表28
2.3.4双向链表29
2.3.5静态链表302.3.6单链表应用举例32
2.4顺序表和链表的比较34
◆数据结构与算法目录第3章栈和队列36
3.1栈36
3.1.1栈的定义及基本操作36
3.1.2栈的存储实现和操作实现37
3.2栈的应用举例40
3.3队列50
3.3.1队列的定义及基本运算50
3.3.2队列的存储实现及运算实现50
3.4队列应用举例56
习题59
第4章串60
4.1串及基本运算60
4.1.1串的基本概念60
4.1.2串的基本运算60
4.2串的定长度顺序存储及基本运算62
4.2.1串的定长顺序存储62
4.2.2定长顺序串的基本运算63
4.2.3模式匹配64
4.3串的堆存储结构69
4.3.1串名的存储映像69
4.3.2堆存储结构71
4.3.3基于堆结构的基本运算71
习题73
第5章数组、特殊矩阵和广义表74
5.1多维数组74
5.1.1数组的逻辑结构74
5.1.2数组的内存映像74
5.2特殊矩阵的压缩存储77
5.2.1对称矩阵77
5.2.2三角矩阵78
5.2.3带状矩阵79
5.3稀疏矩阵80
5.3.1稀疏矩阵的三元组表存储80
5.3.2稀疏矩阵的十字链表存储86
5.4广义表92
5.4.1广义表的定义和基本运算92
5.4.2广义表的存储93
5.4.3广义表的基本操作的实现95
习题99
第6章二叉树101
6.1定义与性质101
6.1.1二叉树的基本概念101
6.1.2二叉树的主要性质103
6.2基本操作与存储实现104
6.2.1二叉树的存储104
6.2.2二叉树的基本操作及实现107
6.3二叉树的遍历110
6.3.1二叉树的遍历方法及递归实现110
6.3.2二叉树遍历的非递归实现112
6.3.3由遍历序列恢复二叉树116
6.3.4不用栈的二叉树遍历的非递归方法118
6.4线索二叉树118
6.4.1线索二叉树的定义及结构118
6.4.2线索二叉树的基本操作实现120
6.5二叉树的运用126
6.5.1二叉树遍历的运用126
6.5.2最优二叉树——哈夫曼树129
习题135
第7章树137
7.1树的概念与表示137
7.1.1树的定义及相关术语137
7.1.2树的表示138
7.2树的基本操作与存储139
7.2.1树的基本操作139
7.2.2树的存储结构140
7.3树、森林与二叉树的转换143
7.3.1树转换为二叉树143
7.3.2森林转化为二叉树144
7.3.3二叉树转换为树和森林145
7.4树和森林的遍历146
7.4.1树的遍历146
7.4.2森林的遍历147
7.5树的应用147
7.5.1判定树147
7.5.2集合的表示149
7.5.3关系等价求等价类问题151
习题152
第8章图153
8.1图的定义和术语153
8.1.1图的定义153
8.1.2图的相关术语153
8.1.3图的基本操作156
8.2图的存储表示157
8.2.1邻接矩阵157
8.2.2邻接表159
8.2.3十字链表161
8.2.4邻接多重表163
8.3图的遍历165
8.3.1深度优先搜索165
8.3.2广度优先搜索167
8.4图的连通性169
8.4.1无向图的连通性169
8.4.2有向图的连通性169
8.4.3生成树和生成森林170
8.4.4关结点和重连通分量172
8.5最小生成树175
8.5.1最小生成树的基本概念175
8.5.2构造最小生成树的Prim算法176
8.5.3构造最小生成树的Kruskal算法178
8.6最短路径181
8.6.1从一个源点到其他各点的最短路径181
8.6.2每一对顶点之间的最短路径183
8.7有向无环图及其应用186
8.7.1有向无环图的概念186
8.7.2AOV网与拓扑排序187
8.7.3AOE网与关键路径192
习题196
第9章查找197
9.1基本概念与术语197
9.2静态查找表199
9.2.1静态查找表结构199
9.2.2顺序查找200
9.2.3有序表的折半查找201
9.2.4有序表的插值查找和斐波那契查找203
9.2.5分块查找205
9.3动态查找表205
9.3.1二叉排序树205
9.3.2平衡二叉树210
9.3.3B-树和B+树216
9.4哈希表查找(杂凑法)223
9.4.1哈希表与哈希方法223
9.4.2常用的哈希函数224
9.4.3处理冲突的方法225
9.4.4哈希表的查找分析229
习题230
第10章排序231
10.1基本概念231
10.2插入排序231
10.2.1直接插入排序231
10.2.2折半插入排序233
10.2.3表插入排序234
10.2.4希尔排序236
10.3交换排序238
10.3.1冒泡排序238
10.3.2快速排序239
10.4选择排序241
10.4.1简单选择排序242
10.4.2树型选择排序242
10.4.3堆排序243
10.5二路归并排序246
10.6基数排序248
10.6.1多关键码排序248
10.6.2链式基数排序248
10.7外部排序251
10.7.1外部排序的方法251
10.7.2多路平衡归并的实现253
习题255
Copyright(C)清华大学出版社有限公司,All Rights Reserved 京ICP备10035462号 联系我们