新書推薦:
《
甲骨文丛书·古代中国的军事文化
》
售價:NT$
454.0
《
中国王朝内争实录(套装全4册):从未见过的王朝内争编著史
》
售價:NT$
1112.0
《
半导体纳米器件:物理、技术和应用
》
售價:NT$
806.0
《
创客精选项目设计与制作 第2版 刘笑笑 颜志勇 严国陶
》
售價:NT$
281.0
《
佛山华家班粤菜传承 华家班59位大厨 102道粤菜 图文并茂 菜式制作视频 粤菜故事技法 佛山传统文化 广东科技
》
售價:NT$
1010.0
《
武人琴音(十周年纪念版 逝去的武林系列收官之作 形意拳一门三代:尚云祥、韩伯言、韩瑜的人生故事 凸显百年武人命运)
》
售價:NT$
199.0
《
剑桥斯堪的纳维亚戏剧史(剑桥世界戏剧史译丛)
》
售價:NT$
704.0
《
禅心与箭术:过松弛而有力的生活(乔布斯精神导师、世界禅者——铃木大拙荐)
》
售價:NT$
301.0
|
編輯推薦: |
本书全面系统地介绍了数据结构的基本概念和知识,既注重理论知识,又注重算法设计的训练。在重点章节中,结合精心编写的应用实例,介绍了应用数据结构和算法解决实际问题和进行程序设计的方法,增强了读者对基本知识的理解与掌握,更有利于分析问题能力和程序设计能力的提高。
|
內容簡介: |
本书结合编者多年教学经验,全面系统地介绍了数据结构的基本概念和知识,条理清晰、重点突出,内容循序渐进、深入浅出,既注重理论知识的讲解,又注重算法设计的训练,突出了理论性与实用性。全书共分9章,第1章作为全书的综述和基础,介绍了数据结构、算法的相关概念和算法分析方法等,其后各章分别讨论了线性表、栈和队列、串、多维数组和广义表、树和二叉树、图、数据结构的定义、表示和实现,*后两章介绍了查找和内部排序的各种方法。在重点章节中,还结合精心编写的应用实例,介绍了应用数据结构和算法解决实际问题及进行程序设计的方法,增强了读者对基本知识的理解与掌握,有利于提高分析问题的能力和程序设计的能力。全书采用C语言作为数据结构和算法的描述语言。 本书可作为高等学校计算机类、信息类及相近专业本科生的数据结构课程教材,也可供从事计算机软件开发和工程应用的人员学习和参考。
|
目錄:
|
第1章概论1
1.1什么是数据结构1
1.1.1数据和数据元素1
1.1.2数据对象与数据类型2
1.1.3数据结构2
1.2为什么要学习数据结构5
1.2.1学习数据结构的重要性5
1.2.2数据结构的应用举例5
1.3算法和算法分析7
1.3.1什么是算法7
1.3.2算法的描述和设计7
1.3.3算法分析8
本章小结10
习题10
第2章线性表12
2.1线性表的基本概念12
2.1.1线性表的定义12
2.1.2线性表的基本操作13
2.2线性表的顺序存储13
2.2.1顺序表13
2.2.2顺序表的基本操作14
2.2.3顺序存储方式举例17
2.3线性表的链式存储20
2.3.1单链表的基本概念20
2.3.2单链表的基本操作22
2.3.3链式存储举例25
2.3.4循环链表28
2.3.5双向链表30
2.3.6双向循环链表332.3.7静态链表34
2.4线性表顺序存储与链式存储的比较35
2.5线性表的应用36
2.5.1约瑟夫问题36
2.5.2多项式加法38
2.5.3电文加密40
本章小结42
习题43
第3章栈和队列45
3.1栈45
3.1.1栈的定义与基本操作45
3.1.2顺序栈的存储结构和操作的实现47
3.1.3链栈的存储结构和操作的实现50
3.2栈的应用52
3.2.1数制转换52
3.2.2括号匹配问题54
3.2.3子程序的调用55
3.2.4利用一个顺序栈逆置一个带头节点的单链表56
3.2.5后缀表达式59
3.3队列61
3.3.1队列的定义与基本操作61
3.3.2链队列的存储结构和操作的实现62
3.3.3顺序队列的存储结构和操作的实现64
3.4队列的应用68
3.4.1打印杨辉三角形68
3.4.2迷宫问题: 寻找一条从迷宫入口到出口的最短路径71
3.5递归74
3.5.1递归的定义与实现74
3.5.2递归消除77
本章小结81
习题81
第4章串85
4.1串的定义和基本操作85
4.1.1串的定义85
4.1.2串的基本操作87
4.2串的表示和实现88
4.2.1串的定长顺序存储88
4.2.2串的堆存储结构91
4.2.3串的块链存储结构93
4.3串的模式匹配算法97
4.3.1基本的模式匹配算法97
4.3.2模式匹配的改进算法KMP算法100
本章小结102
习题102
第5章多维数组和广义表104
5.1多维数组104
5.1.1多维数组的定义104
5.1.2数组的存储结构105
5.2矩阵的压缩存储 106
5.2.1特殊矩阵106
5.2.2稀疏矩阵108
5.3广义表 114
本章小结116
习题117
第6章树和二叉树118
6.1树的概念与基本操作118
6.1.1树的定义118
6.1.2树的一些基本概念119
6.1.3树的基本操作120
6.2二叉树120
6.2.1二叉树的定义和基本操作120
6.2.2二叉树的性质121
6.2.3二叉树的存储结构123
6.3二叉树的遍历与线索化124
6.3.1二叉树的遍历124
6.3.2线索二叉树127
6.3.3基于遍历的应用与线索二叉树的应用129
6.3.4标识符树134
6.4树和森林134
6.4.1树的存储结构134
6.4.2树、森林和二叉树之间的转换137
6.4.3树和森林的遍历140
6.5哈夫曼树及其应用142
6.5.1与哈夫曼树相关的基本概念142
6.5.2哈夫曼树的应用144
6.5.3哈夫曼编码算法的实现146
*6.6树的计数147
本章小结150
习题151
第7章图154
7.1图的基本概念154
7.1.1图的定义154
7.1.2图的相关术语155
7.2图的存储结构157
7.2.1邻接矩阵表示法157
7.2.2邻接表表示法159
7.3图的遍历163
7.3.1深度优先搜索法163
7.3.2广度优先搜索法165
7.3.3非连通图的遍历167
7.4生成树与最小生成树167
7.4.1生成树的概念167
7.4.2构造最小生成树的普里姆Prim算法168
7.4.3构造最小生成树的克鲁斯卡尔Kruskal算法171
7.5最短路径173
7.5.1从某个源点到其余各顶点的最短路径174
7.5.2每一对顶点之间的最短路径178
7.6拓扑排序181
7.7关键路径184
本章小结190
习题190
第8章查找195
8.1查找的基本概念195
8.1.1查找表和查找195
8.1.2查找表的数据结构表示196
8.1.3平均查找长度ASL196
8.2线性表的查找196
8.2.1顺序查找 196
8.2.2二分查找198
8.2.3分块查找201
8.3树表的查找203
8.3.1二叉排序树203
*8.3.2平衡二叉树208
*8.3.3B-树212
8.4散列表的查找221
8.4.1散列表的概念221
8.4.2散列函数的构造方法222
8.4.3处理冲突的方法 223
8.4.4散列表上的运算 227
本章小结230
习题230
第9章排序232
9.1排序的基本概念232
9.1.1关键字与排序232
9.1.2排序的稳定性233
9.1.3排序方法的分类233
9.1.4排序算法性能评价233
9.1.5不同存储方式的排序过程233
9.2插入排序234
9.2.1直接插入排序234
9.2.2希尔排序237
9.3交换排序239
9.3.1冒泡排序239
9.3.2快速排序霍尔排序240
9.4选择排序244
9.4.1直接选择排序244
9.4.2堆排序245
9.5归并排序250
9.6基数排序253
9.6.1桶排序253
9.6.2多关键字的排序253
9.6.3链式基数排序254
9.7内部排序算法比较257
9.8外部排序简介259
本章小结259
习题260
参考文献263
|
內容試閱:
|
数据结构是计算机程序设计的重要理论基础,是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。数据结构的内容不仅是一般程序设计(特别是非数值性程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。它不仅是计算机专业的核心课程,也是其他理工专业的热门选修课。在计算机的应用领域中,数据结构有着广泛的应用。
计算机的程序是对信息进行加工处理,而信息的表示和组织又直接关系到处理信息程序的效率。随着计算机的普及、信息量的增加、信息范围的拓宽,使许多系统程序和应用程序的规模很大,结构又相当复杂,因此,为了编写出一个好的程序,必须分析待处理对象的特征及各对象之间存在的关系。这就是数据结构这门课所要研究的问题。数据的结构,直接影响算法的选择和效率。
本书共分9章,第1章介绍了数据结构的基本概念和算法分析的初步知识;第2章到第5章介绍了线性表、栈和队列、串、多维数组和广义表等线性结构的基本概念及常用算法的实现;第6章和第7章介绍了非线性结构的树、二叉树、图等数据结构的存储结构和不同存储结构上的一些操作的实现;第8章介绍了各种查找表及查找方法;第9章介绍了各种排序算法。本书计划学时为64学时左右,其中上机实习为12学时左右。教师可根据专业情况,选讲或不讲目录中带*的章节。
本书是作者根据自己的教学经验总结,为地方本科院校计算机类学生编写的教材。作者在教学过程中发现,大多数学生在初学数据结构时,容易误解算法与程序之间的关系,经常会把书中的算法当作程序直接在编译器上进行运行测试。为了解决这个问题,本书采用C语言作为数据结构和算法的描述语言,并且对关键的算法都安排了比较完整的C语言程序供学生上机实习参考,只要添加上主函数,程序即可运行。本书力求做到选材精练、叙述简洁、通俗易懂,尽量避免抽象理论的介绍和复杂公式的推导。对各种数据结构均从实际出发,通过对实例的分析,使学生理解数据结构的基本概念。在每章后面带有适量的习题,习题中编排了较多的选择题和填空题,并配有习题答案,方便学生自学参考。
由于作者水平有限,书中难免会有不足之处,敬请广大读者批评指正。
编著者
|
|