华信教育资源网
数据结构——使用C语言(第5版)
丛   书   名: 计算机类本科规划教材
作   译   者:朱战立 出 版 日 期:2014-01-01
出   版   社:电子工业出版社 维   护   人:冉哲 
书   代   号:G0216990 I S B N:9787121216992

图书简介:

数据结构是计算机学科各专业的一门重要的专业基础课。本书包含了2009年研究生入学统考大纲的全部内容。本书系统地介绍了线性表、堆栈、队列、串、数组、广义表、树、二叉树、图等典型数据结构,以及递归、查找和排序的方法。本书理论叙述简洁准确、实践应用举例丰富完整,从而达到理论和实践密切结合的教学目的。本书采用C语言描述算法。本书内容丰富,难度适中,文字简洁准确,图文并茂,应用实例多,教学参考资料丰富。本书免费提供教学课件,可登录华信教育资源网(www.hxedu.com.cn)注册后下载。
定价 40.0
您的专属联系人更多
关注 评论(0) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源
    图书特别说明:

    本书资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    数据结构是计算机学科各专业的一门重要的专业基础课。本书包含了2009年研究生入学统考大纲的全部内容。本书系统地介绍了线性表、堆栈、队列、串、数组、广义表、树、二叉树、图等典型数据结构,以及递归、查找和排序的方法。本书理论叙述简洁准确、实践应用举例丰富完整,从而达到理论和实践密切结合的教学目的。本书采用C语言描述算法。 本书内容丰富,难度适中,文字简洁准确,图文并茂,应用实例多,教学参考资料丰富。本书免费提供教学课件,可登录华信教育资源网(www.hxedu.com.cn)注册后下载。

    图书详情

    ISBN:9787121216992
    开 本:16开
    页 数:320
    字 数:537

    本书目录

    第1章  绪论	1
         1.1  数据结构的基本概念	1
         1.1.1  数据、数据元素、数据元素的数据类型	1
         1.1.2  数据的逻辑结构	2
         1.1.3  数据的存储结构	3
         1.1.4  数据的操作	3
         1.1.5 “数据结构”课程讨论的主要内容	4
         1.2  抽象数据类型	4
         1.3  算法和算法的时间复杂度	5
         1.3.1  算法	5
         1.3.2  算法的性质和设计目标	6
         1.3.3  算法的时间效率分析	7
         1.3.4  算法耗时的实际测试	10
         1.3.5  数据元素个数和时间复杂度	12
         习题1	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.2.4  顺序表应用举例	21
         2.3  线性表的链式表示和实现	24
         2.3.1  单链表的存储结构	24
         2.3.2  单链表的操作实现	27
         2.3.3  单链表操作的效率分析	31
         2.3.4  单链表应用举例	32
         2.3.5  循环单链表	33
         2.3.6  双向链表	33
         2.4  静态链表	37
         2.5  算法设计举例	37
         2.5.1  顺序表算法设计举例	37
         2.5.2  单链表算法设计举例	38
         习题2	40
    第3章  堆栈和队列	44
         3.1  堆栈	44
         3.1.1  堆栈的基本概念	44
         3.1.2  堆栈的抽象数据类型	45
         3.1.3  堆栈的顺序表示和实现	46
         3.1.4  堆栈的链式表示和实现	48
         3.2  堆栈应用	50
         3.2.1  括号匹配问题	51
         3.2.2  算术表达式计算问题	53
         3.3  队列	58
         3.3.1  队列的基本概念	58
         3.3.2  队列的抽象数据类型	58
         3.3.3  顺序队列以及存在的问题	58
         3.3.4  顺序循环队列的表示和实现	59
         3.3.5  链式队列	62
         3.3.6  队列的应用	65
         3.4  优先级队列	69
         3.4.1  顺序优先级队列的设计和实现	69
         3.4.2  优先级队列的应用	71
         习题3	73
    第4章  串	77
         4.1  串概述	77
         4.1.1  串及其基本概念	77
         4.1.2  串的抽象数据类型	78
         4.1.3  C语言的串函数	78
         4.2  串的存储结构	80
         4.3  串基本操作的实现算法	82
         4.4  串的模式匹配算法	87
         4.4.1  Brute-Force算法	87
         4.4.2  KMP算法	89
         4.4.3  Brute-Force算法和KMP算法的比较	94
         习题4	97
    第5章  数组	99
         5.1  数组概述	99
         5.1.1  数组的定义	99
         5.1.2  数组的实现机制	99
         5.1.3  数组的抽象数据类型	100
         5.2  动态数组	100
         5.2.1  动态数组的设计方法	100
         5.2.2  动态数组和静态数组对比	103
         5.3  特殊矩阵的压缩存储	104
         5.4  稀疏矩阵的压缩存储	106
         5.4.1  稀疏矩阵的三元组顺序表	106
         5.4.2  稀疏矩阵的三元组链表	109
         习题5	110
    第6章  递归算法	113
         6.1  递归的概念	113
         6.2  递归算法的执行过程	114
         6.3  递归算法的设计方法	116
         6.4  递归过程和运行时栈	119
         6.5  递归算法的时间效率分析	120
         6.6  递归算法到非递归算法的转换	123
         6.7  设计举例	125
         6.7.1  一般递归算法设计举例	125
         6.7.2  回溯算法及设计举例	127
         习题6	130
    第7章  广义表	133
         7.1  广义表概述	133
         7.1.1  广义表的概念	133
         7.1.2  广义表的抽象数据类型	134
         7.2  广义表的存储结构	135
         7.2.1  头链和尾链存储结构	135
         7.2.2  原子和子表存储结构	135
         7.3  广义表的操作实现	136
    7.3.1  头链和尾链存储结构下的操作实现	136
    7.3.2  头链和尾链存储结构应用举例	140
    7.3.3  原子和子表存储结构下的操作实现	142
         7.3.4  原子和子表存储结构应用举例	144
         习题7	145
    第8章  树和二叉树	147
         8.1  树	147
         8.1.1  树的定义	147
         8.1.2  树的表示方法	148
         8.1.3  树的抽象数据类型	149
         8.1.4  树的存储结构	149
         8.2  二叉树	152
         8.2.1  二叉树的定义	152
         8.2.2  二叉树的抽象数据类型	153
         8.2.3  二叉树的性质	153
         8.3  二叉树的设计和实现	155
         8.3.1  二叉树的存储结构	155
         8.3.2  二叉树的操作实现	157
         8.4  二叉树遍历	159
         8.4.1  二叉树遍历的方法和结构	159
    8.4.2  二叉链存储结构下二叉树
    遍历的实现	160
         8.4.3  二叉树遍历的应用	161
         8.4.4  非递归的二叉树遍历算法	164
         8.5  线索二叉树	165
         8.5.1  线索二叉树及其用途	165
         8.5.2  中序线索二叉树的设计	167
    8.5.3  中序线索二叉树循环操作的
    设计	168
         8.5.4  设计举例	169
         8.6  哈夫曼树	170
         8.6.1  哈夫曼树的基本概念	170
         8.6.2  哈夫曼编码问题	171
         8.6.3  哈夫曼编码问题设计和实现	173
         8.7  等价问题	177
         8.8  树与二叉树的转换	181
         8.9  树的遍历	182
         习题8	182
    第9章  图	186
         9.1  图概述	186
         9.1.1  图的基本概念	186
         9.1.2  图的抽象数据类型	188
         9.2  图的存储结构	189
         9.2.1  图的邻接矩阵存储结构	189
         9.2.2  图的邻接表存储结构	190
         9.3  图的实现	191
    9.3.1  邻接矩阵存储结构下图操作的实现	191
    9.3.2  邻接表存储结构下图操作的实现	194
         9.4  图的遍历	198
    9.4.1  图的深度和广度优先遍历算法	198
    9.4.2  图的深度和广度优先遍历算法实现	200
         9.5  最小生成树	202
         9.5.1  最小生成树的基本概念	202
         9.5.2  普里姆算法	203
         9.5.3  克鲁斯卡尔算法	207
         9.6  最短路径	208
         9.6.1  最短路径的基本概念	208
         9.6.2  每对顶点之间的最短路径	212
         9.7  拓扑排序	215
         9.8  关键路径	217
         习题9	221
    第10章  排序	224
         10.1  排序的基本概念	224
         10.2  插入排序	226
         10.2.1  直接插入排序	226
         10.2.2  希尔排序	228
         10.3  选择排序	229
         10.3.1  直接选择排序	229
         10.3.2  堆排序	231
         10.4  交换排序	235
         10.4.1  冒泡排序	235
         10.4.2  快速排序	236
         10.5  归并排序	239
         10.6  基数排序	241
         10.7  排序算法性能比较	244
         习题10	245
    第11章  查找	249
         11.1  查找的基本概念	249
         11.2  静态查找	250
         11.2.1  顺序表	250
         11.2.2  有序顺序表	251
         11.2.3  索引顺序表	253
         11.3  动态查找	255
         11.3.1  二叉排序树和平衡二叉树	255
         11.3.2  B_树和B+树	261
         11.4  哈希查找	267
         11.4.1  哈希表的基本概念	267
         11.4.2  哈希函数构造方法	269
         11.4.3  哈希冲突解决方法	270
         11.4.4  哈希表设计	272
         习题11	275
    附录A  上机实习报告内容规范和上机实习报告实例	279
         附录A.1  上机实习报告内容规范	279
         附录A.2  上机实习报告实例	279
    附录B  部分习题解答	284
    参考文献	311
    展开

    前     言

    前    言
    数据结构是计算机学科各专业一门重要的专业基础课,也是其他计算机相关专业的一门必修课或选修课。数据结构课程的教学目的,是使学生掌握组织数据、存储数据以及处理数据的基本概念和软件设计的基本方法,从而为进一步学习后续专业课程打下坚实的基础。
    本书作者20多年来一直从事数据结构课程的教学工作,曾编著过若干本采用不同算法描述语言的数据结构教材。本书是在经过长期使用的以前出版的教材基础上,参照新的研究生入学统考大纲,通过作者进一步修改、补充和完善而成的。
    2009年出版的本教材第4版,包含了2009年研究生入学统考大纲的全部内容。经过近5年的使用,作者发现原书内容稍嫌过多,像“文件”一章的内容,大多数学校已不再讲授。本次修订出版的第5版,删除了“文件”一章,以及原第1章中算法书写规范的内容。对于原书中错误和叙述不够准确的地方,也做了修改。另外,考虑到一些学生对较复杂的算法感觉理解困难,也顺便补充了一些算法的注释内容。
    本书讨论的典型数据结构问题包括线性表、堆栈、队列、串、数组、递归、广义表、树、二叉树、图、排序、查找等。对于线性表、堆栈、队列、串、数组、广义表、树、二叉树和图等基本数据结构问题,详细讨论了各自的逻辑结构、存储结构以及各种算法的设计方法。排序和查找是两个应用广泛的算法设计问题,本书讨论了几种典型的排序算法,讨论了静态查找、动态查找和哈希查找的存储结构和查找方法。广义表、树、二叉树和图这些非线性结构的算法经常要设计成递归算法,本书专设一章讨论递归算法的设计方法等问题。
    数据结构课程是一门理论和实践结合密切的课程。本书理论叙述简洁准确、实践应用举例丰富完整,理论通过丰富、完整的设计实例予以说明,设计实例从侧面解释了概念和应用方法,从而达到理论和实践密切结合的教学目的。本书采用C语言描述算法。
    本书具有如下特点。
    (1)内容丰富,难度适中,文字简洁准确,图文并茂。
    (2)本书的所有算法都经上机调试通过,包括各章的操作实现函数、各章的程序设计实例以及习题解答中给出的算法设计。
    (3)习题全面,覆盖面广,择要解答。每章最后设计了大量的习题,覆盖了各章的全部教学内容,并在附录B中给出了部分习题解答。
    (4)课内上机参考资料丰富。数据结构课程是一门理论结合实践的课程,通常要求包含10课时以上的课内上机实习(或称项目设计)。本书各章的习题部分都专门设计了一定数量的上机实习题。另外,附录A还给出了上机实习报告内容规范和一个上机实习报告书写实例,可供学生参考。
    根据作者的经验,使用本教材授课约需54~80课时,其中包括约10课时的课内上机实习。
    使用本书的读者可登录华信教育资源网(www.hxedu.com.cn)免费下载教学课件。
    展开

    作者简介

    本书暂无作者简介
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网