数据结构与算法:C语言版
作者 : 徐凤生 主编 徐凤生 戎丽霞 李天志 编著
出版日期 : 2010-10-18
ISBN : 978-7-111-32122-4
适用人群 : 本书可作为高等院校计算机及相关专业本科生的“数据结
定价 : 28.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 248
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是作者针对数据结构课程概念多、算法灵活和抽象性强的特点,在总结长期教学经验的基础上编写而成的。
本书共10章,内容涵盖数据结构的基本概念,定义了线性表、栈、队列、串、数组、广义表、树和二叉树、图、查找、排序等各种结构的抽象数据类型,并给出了相应操作的实现算法。采用C语言描述算法,并给出了各种算法的效率分析,以及这些结构在计算机科学及其他领域的应用。每章后均配有典型算法设计、上机实验题和练习题。所有算法都在VC++环境下调试通过。

图书特色

数据结构与算法
C语言版
徐凤生 主编

数据结构课程的特点是概念多、算法灵活和抽象性强。针对这种情况,作者在参考各种数据结构教材的基础上,结合多年的教学经验,编写了这本适用于普通高等院校计算机及相关专业本科生数据结构课程的教材。本书的编写突出了课程学科能力的培养,体现了兼顾“理论和应用”的教学改革理念。

本书特点:
语言通俗易懂,阐述简洁明了。
重点突出算法设计思路,注重培养学生的编程思想和解决实际问题的能力。
为激发学生学习该课程的兴趣,增强学生的创新意识,书中融入了一些利用所学知识解决实际问题的例子,如真值表的求解算法、出栈序列的求解算法等。
算法丰富,讲解透彻,便于学生自学。
通过典型算法设计的分析,使学生对所学知识的掌握更加系统化和条理化,更易于对所学知识融会贯通和举一反三。
本书为教师提供教学课件、习题答案以及所有算法的调试程序,有需要者可登录华章网站(www.hzbook.com)下载。

图书前言

“数据结构”是计算机程序设计的重要理论技术基础,是计算机学科的核心课程,也是计算机专业考研的必考课程,而且已成为其他理工科专业的热门课程。学好该课程,不仅对其后续算法设计、数值分析、操作系统、编译原理等课程的学习有很大帮助,而且在实际中有广泛的用途。
  数据结构主要研究数据的各种组织形式以及建立在这些结构之上的各种运算的实现。它不仅为计算机语言进行程序设计提供了方法性的理论指导,还在一个更高的层次上总结了程序设计的常用方法和常用技巧。
  “数据结构”课程的特点是概念多、算法灵活和抽象性强。针对这种情况,我们在参考各种数据结构教材的基础上,结合作者多年的教学经验,编写了这本适用于普通高等院校计算机及相关专业本科生的数据结构教材。该教材的编写突出了课程学科能力的培养,体现了兼顾“理论和应用”的教学改革理念。
  本书分为10章,第1章绪论,介绍数据、数据结构、抽象数据类型等基本概念,特别是算法分析的方法;第2章线性表,介绍线性表的两种存储结构(顺序表和链表)的逻辑结构与基本运算的实现过程;第3章栈与队列,介绍两种特殊的线性结构的概念与应用;第4章串,介绍串的概念与模式匹配算法;第5章数组与广义表,介绍数组和稀疏矩阵的概念及相关运算的实现,以及广义表的存储结构及相关运算的实现;第6章树与二叉树,介绍树与二叉树的概念和各种运算的实现过程,其中特别突出二叉树的各种递归和非递归算法;第7章图,介绍图的基本概念和各种运算的实现过程;第8章查找,介绍各种常用查找算法的实现过程;第9章排序,介绍各种常用排序算法的实现过程;第10章文件,介绍常用的文件结构。
  数据结构是一门应用性非常强的课程,必须在掌握了各种数据结构的基础上,尽可能多地上机练习。为此,本书每章后面都配有相应的上机实验题。
  全书采用C语言作为数据结构和算法的描述语言,所有算法均在VC++环境下调试通过。
  本书由徐凤生教授任主编。其中,第1章至第4章和第6章至第9章由徐凤生编写,第5章由戎丽霞编写,第10章由李天志编写。最后,全书由徐凤生统稿并定稿。
  本书具有以下特色:
  1)语言通俗易懂,阐述简洁明了。
  2)重点突出算法设计思路,注重培养学生的编程思想和解决实际问题的能力。
  3)为激发学生学习该课程的兴趣,增强学生的创新意识,书中融入了一些利用所学知识解决实际问题的例子,如真值表的求解算法、出栈序列的求解算法等。
  4)算法丰富,讲解透彻,便于学生自学。
  5)通过典型算法设计的分析,使学生所学知识更加系统化和条理化,更易于对所学知识融会贯通和举一反三。
  6)为方便教师教学,本书配有电子教案和习题答案,可登录华章网站(www.hzbook.com)下载或发送邮件至xfs@dzu.edu.cn与作者联系。
  在编写中我们参阅了许多数据结构教材和相关资料,在此向其作者一并表示感谢。本教材的出版得到了德州学院教材出版基金的资助。最后,还要特别感谢机械工业出版社华章分社的大力支持,使得本书得以顺利出版。
  限于作者水平,书中不当和疏漏之处在所难免,敬请读者不吝指正。

编者

上架指导

计算机\数据结构

封底文字

数据结构课程的特点是概念多、算法灵活和抽象性强。针对这种情况,我们在参考各种数据结构教材的基础上,结合作者多年的教学经验,编写了这本适用于普通高等院校计算机及相关专业本科生数据结构课程的教材。本书的编写突出了课程学科能力的培养,体现了兼顾“理论和应用”的教学改革理念。
本书具有以下特色:
语言通俗易懂,阐述简洁明了。
重点突出算法设计思路,注重培养学生的编程思想和解决实际问题的能力。
为激发学生学习该课程的兴趣,增强学生的创新意识,书中融入了一些利用所学知识解决实际问题的例子,如真值表的求解算法、出栈序列的求解算法等。
算法丰富,讲解透彻,便于学生自学。
通过典型算法设计的分析,使学生对所学知识的掌握更加系统化和条理化,更易于对所学知识的融会贯通和举一反三。
本书为教师提供教学课件、习题答案以及所有算法的调试程序,有需要者可登录华章网站(www.hzbook.com)下载。

图书目录

前言
教学建议
第1章绪论1
11数据结构的研究对象1
12数据结构的发展概况4
13基本概念与术语4
14数据类型与抽象数据类型6
141数据类型6
142抽象数据类型6
143抽象数据类型的表示与实现7
15算法与算法分析9
151算法9
152算法设计的原则10
153算法效率的衡量方法和准则10
154算法的存储空间需求12
16典型例题12
17上机实验13
习题13
第2章线性表16
21线性表的定义16
211线性表的概念16
212线性表的抽象数据类型定义16
22线性表的顺序表示与实现17
221线性表的顺序表示17
222线性表的顺序实现18
223顺序表的应用举例21
23线性表的链式表示与实现22
231单链表22
232双向链表26
233循环链表29
234静态链表31
235链表的应用举例33
24典型例题35
25上机实验37
习题39
第3章栈与队列41
31栈41
311栈的抽象数据类型定义41
312栈的表示与实现42
32栈的应用举例44
321数制转换44
322括号匹配的检验45
323表达式求值46
324求命题公式的真值50
33栈与递归实现53
331递归的定义53
332递归与栈的关系53
333递归的实现54
334用递归求所有出栈序列56
335递归的消除57
34队列59
341队列的抽象数据类型定义59
342队列的链式表示与实现60
343队列的顺序表示与实现——循环队列61
344队列的应用举例63
35典型例题64
36上机实验66
习题68
第4章串70
41串的定义70
42串的表示与实现72
421串的顺序存储表示72
422串的链式存储表示75
43串的模式匹配75
431简单匹配算法75
432首尾匹配算法77
433KMP算法78
44典型例题80
45上机实验82
习题83
第5章数组与广义表85
51数组的定义85
52数组的顺序存储86
53矩阵的压缩存储88
531特殊矩阵89
532稀疏矩阵90
54广义表94
541广义表的定义94
542广义表的存储结构96
55典型例题98
56上机实验99
习题100
第6章树与二叉树101
61树的定义101
611树的概念与术语101
612树的逻辑表示方法102
613树的抽象数据类型定义102
62二叉树的定义103
621二叉树的概念103
622二叉树的重要性质105
63二叉树的存储结构106
631二叉树的顺序存储表示106
632二叉树的链式存储表示106
64二叉树的遍历108
641二叉树遍历的概念108
642二叉树遍历的递归算法108
643二叉树遍历的非递归算法109
644层次遍历算法111
645遍历算法的应用举例112
65二叉树的构造115
66线索二叉树116
661线索二叉树的定义116
662线索链表的建立117
663线索链表的遍历算法118
67树和森林的表示方法119
671双亲表示法119
672孩子链表表示法120
673孩子-兄弟链表表示法121
674树、森林和二叉树的对应关系121
68树和森林的遍历122
681树的遍历122
682森林的遍历123
683树遍历算法的应用124
69赫夫曼树与赫夫曼编码124
691赫夫曼树的定义125
692赫夫曼树的构造125
693赫夫曼编码127
610典型例题128
611上机实验130
习题130
第7章图133
71图的定义与术语133
711图的相关术语133
712图的抽象数据类型定义135
72图的存储表示136
721图的邻接矩阵存储表示136
722图的邻接表存储表示137
723有向图的十字链表存储表示138
724无向图的邻接多重表存储表示140
73图的遍历141
731深度优先搜索遍历图141
732广度优先搜索遍历图142
733图遍历的应用举例143
74最小生成树145
741普里姆算法145
742克鲁斯卡尔算法147
75两点之间的最短路径问题148
751从某个源点到其余各点的最短路径148
752每一对顶点之间的最短路径150
76拓扑排序151
77关键路径153
78典型例题156
79上机实验158
习题160
第8章查找162
81基本概念162
82静态查找表163
821顺序查找163
822有序表查找164
823索引查找167
83动态查找树表168
831二叉排序树169
832平衡二叉树173
833B-树179
834B+树183
835键树184
84哈希表185
841哈希表的概念185
842哈希函数的构造方法185
843处理冲突的方法187
844哈希表的查找189
845哈希表的插入操作190
846哈希表的删除操作191
85典型例题191
86上机实验193
习题194
第9章排序196
91概述196
911什么是排序196
912内部排序和外部排序196
913内部排序的方法197
92插入排序198
921直接插入排序198
922折半插入排序199
923二路插入排序200
924表插入排序202
925希尔排序204
93交换排序205
931起泡排序205
932快速排序206
94选择排序209
941简单选择排序209
942堆排序209
95归并排序212
96基数排序213
961多关键字排序213
962链式基数排序214
97各种排序方法的综合比较216
98外排序简介217
981外存信息的存取218
982外排序的基本方法218
99典型例题219
910上机实验221
习题222
第10章文件224
101文件的基本概念224
1011什么是文件224
1012文件的逻辑结构及操作224
1013文件的存储结构225
102顺序文件225
103索引文件226
1031ISAM文件227
1032VSAM文件229
104哈希文件231
105多关键字文件232
1051多重表文件232
1052倒排文件232
1053倒排文件的应用234
106典型例题235
107上机实验237
习题237
参考文献239

教学资源推荐
作者: (美)June Jamrich Parsons Dan Oja 著
作者: [美]罗德?斯蒂芬斯(Rod Stephens)著
参考读物推荐
作者: 卞诚君 等编著
作者: 华诚科技 编著
作者: (美)Jill T.Freeze
作者: [意]达里奥·萨贝拉(Dario Sabella),[美]亚历克斯·列兹尼克(Alex Reznik),[德]鲁伊·弗拉赞(Rui Frazao) 著