数据结构实用教程(C语言版)
作者 : 郭纯一 韩英杰 编著
出版日期 : 2012-02-23
ISBN : 978-7-111-37418-3
适用人群 : 本书针对高等学校计算机相关专业的远程教育/网络教育
定价 : 29.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 231
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本教材计划包括数据结构的基本概念、基本的数据结构(线性表、栈和队列、串、数组、广义表、树和图)和基本技术(查找和排序方法)三大部分。除重点介绍数据的组织技术以外,还强调了程序设计中常用的一些技术的应用。
本书中的算法都采用标准C语言进行描述,内容丰富,概念清晰,叙述简明,技术实用,同时配有难易适度的习题和上机练习题,理论和实践紧密结合。

图书特色

高等院校计算机专业人才能力培养规划教材(应用型)

出版书名:数据结构实用教程(C语言版)



版次:1版1次

作者:郭纯一 韩英杰 编著


本书深入浅出地介绍了数据结构的基本概念和术语、各种数据结构(如表、树、图等)在计算机内的表示方法、操作实现和应用实例,以及实用的排序和查找技术。由于本书内容是复杂程序设计,尤其是非数值计算程序设计的重要基础,因此本书除了重点介绍数据的组织技术以外,还强调了程序设计中常用的一些技术的应用,帮助有实际应用需求的读者尽快掌握数据结构的精髓,并能学以致用。
本书特点:
内容涵盖教学大纲要求,并注重基础与应用的结合。本书概念清晰,叙述简明,技术实用,提供丰富的示例对概念、方法及技术做直观的解释。读者在学习时可根据书中实例举一反三,从而达到能应用数据结构的知识解决实际问题的目的。
采用C语言作为数据结构和算法的描述语言,可以让读者把注意力集中在对算法的理解上,同时也便于读者在计算机上运行这些算法。同时全书贯穿了面向抽象数据类型的观点,有助于培养读者的数据抽象能力。
提供完善的配套教学资源。每章都配有精选的习题和上机实验题目,把练习和教学内容集成在一本书中,供读者在学习之余进行自我检测或上机练习。另外,本书提供完整的电子教案,供采用本教材的教师在授课时使用,有需要者可登录华章网站(www.hzbook.com)下载。
读者对象广泛。本书针对高等学校计算机相关专业的本专科学生编写,也可供从事计算机应用工作的工程技术人员和编程爱好者学习参考。

图书前言

“数据结构”是非数值计算程序设计的重要基础,它不仅是计算机学科的核心课程,而且也是很多理工科专业的重要选修课,其教学目的是:学会分析用计算机解决实际问题时所处理的数据的特性,进而为应用的实现选择合适的逻辑结构、存储结构和相应的算法,会对算法的时间和空间效率作初步分析。“数据结构”是一门理论性和抽象性很强的课程,其涉及的内容还是许多后续课程(如操作系统、编译原理、数据库原理等)的基础;同时本课程也是应用性和实践性很强的课程,其学习过程就是非数值计算程序设计的训练过程,因此本课程在复杂程序设计中也有广泛的应用价值。本书就是为“数据结构”课程编写的教材,其内容涵盖了“数据结构”的所有核心理论,并用丰富的例子讲解其应用技术,适用面广。
  本书包括数据结构的基本概念、基本的数据结构(线性表、栈、队列、串、数组、广义表、树和图)和数据结构的基本技术(查找和排序)三大部分,共10章。第一部分是第1章,除了对课程做概要性的说明外,主要介绍数据结构的基本概念和术语以及进行算法描述和算法分析的基本方法;第二部分由第2~8章组成,分别讨论各种线性结构(线性表、栈、队列和串)和非线性结构(多维数组、广义表、树和图)的逻辑特点、在计算机上的存储表示方法、基本操作的实现算法以及应用的实例;第三部分包括第9章和第10章,介绍非数值计算领域中的两种重要操作(查找和排序)的各种实现技术。本书各章内容相对独立,以便教师在教学的时候针对不同专业和不同层次的需求组织授课内容,同时也便于自学的读者根据实际需要选择学习内容。
  本书在内容安排上具有以下主要特点:
  1)将用C语言编写的实现算法和面向抽象数据类型的观点完美结合。“数据结构”在教学计划中是一门安排得比较靠前的课程,考虑到读者的知识基础,本书采用C语言作为数据结构和算法的描述语言,可以让读者把注意力集中在对算法的理解上,同时也便于读者在计算机上运行这些算法。本书对数据的存储结构和算法的描述力求简明、清晰,在对数据结构的刻画中贯穿了面向对象的观点,对每一种数据结构,都先定义了其相应的抽象数据类型(ADT),然后再给出如何用C语言实现ADT的方法。为了节省篇幅,本书的所有算法都以函数形式给出,读者要运行这些算法,需要自己编写主函数对它们进行调用,同时要包含相关的头文件。
  2)示例丰富。“数据结构”课程注重培养学生的数据抽象能力和算法设计能力,因此本书除重点介绍数据的各种组织、实现技术以外,还强调了程序设计中常用的一些技术的应用。为了便于读者更好地理解,本书选用了丰富的例子对概念和方法做直观的解释,并用例子说明其应用技术。这些例子都针对特定的数据结构,读者在学习时可举一反三,从而达到应用数据结构的知识解决实际问题的目的。
  3)包含难易适当、数量丰富、题型多样的习题。本书每章末尾都配有“习题与上机实验题”。其中,习题按照不同的题型分类,便于读者在理解课程内容的基础上自行检验知识的运用能力;上机实验题则是为了配合实践环节的需求而特别设计的,读者可在相关内容学习结束后通过上机自行编写程序来完成这些题目。根据作者多年的教学实践,这类上机实验题对学生掌握课堂教学内容有很大帮助,同时通过平时的上机训练,也可培养学生良好的编程习惯和程序设计风格以及高水平的复杂程序设计能力,为学生将来从事软件技术开发工作打下坚实的基础。
  本书是为高等院校计算机相关专业的远程教育/网络教育的本、专科学生编写的,同时可作为高等院校计算机等专业的数据结构课程的教材,还可供从事计算机应用工作的工程技术人员和编程爱好者学习参考。
  由于作者水平有限,书中的不妥之处在所难免,敬请读者批评指正。

编者

上架指导

计算机\数据结构

封底文字

本书深入浅出地介绍了数据结构的基本概念和术语、各种数据结构(如表、树、图等)在计算机内的表示方法、操作实现和应用实例,以及实用的排序和查找技术。由于本书内容是复杂程序设计,尤其是非数值计算程序设计的重要基础,因此本书除了重点介绍数据的组织技术以外,还强调了程序设计中常用的一些技术的应用,帮助有实际应用需求的读者尽快掌握数据结构的精髓,并能学以致用。
本书特点:
内容涵盖教学大纲要求,并注重基础与应用的结合。本书概念清晰,叙述简明,技术实用,提供丰富的示例对概念、方法及技术做直观的解释。读者在学习时可根据书中实例举一反三,从而达到能应用数据结构的知识解决实际问题的目的。
采用C语言作为数据结构和算法的描述语言,可以让读者把注意力集中在对算法的理解上,同时也便于读者在计算机上运行这些算法。同时全书贯穿了面向抽象数据类型的观点,有助于培养读者的数据抽象能力。
提供完善的配套教学资源。每章都配有精选的习题和上机实验题目,把练习和教学内容集成在一本书中,供读者在学习之余进行自我检测或上机练习。另外,本书提供完整的电子教案,供采用本教材的教师在授课时使用,有需要者可登录华章网站(www.hzbook.com)下载。
读者对象广泛。本书针对高等学校计算机相关专业的本专科学生编写,也可供从事计算机应用工作的工程技术人员和编程爱好者学习参考。

图书目录

出版者的话
丛书序言
丛书编委会
前言
教学建议
第一部分 数据结构的基本概念
第1章 绪论2
 1.1 数据结构概述2
  1.1.1 几个非数值计算问题2
  1.1.2 数据结构在计算机学科中的地位3
  1.1.3 数据结构课程的发展史4
  1.1.4 数据结构课程的学习特点4
 1.2 基本概念及术语4
  1.2.1 关于数据的基本概念4
  1.2.2 关于数据结构的基本概念5
  1.2.3 关于数据类型的基本概念5
 1.3 算法和算法分析6
  1.3.1 算法的概念与特性7
  1.3.2 算法时间效率的度量8
  1.3.3 算法空间效率的度量9
 1.4 用C语言描述数据结构和算法:知识回顾10
 习题与上机实验题12
第二部分 基本的数据结构
第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 顺序表上基本操作的实现18
  2.2.4 一个应用实例23
  2.2.5 顺序表的总结25
 2.3 线性表的链式存储结构25
  2.3.1 单链表的定义及特点26
  2.3.2 单链表上基本操作的实现27
  2.3.3 循环链表30
  2.3.4 双向链表31
  2.3.5 静态链表32
 2.4 线性表的应用举例34
  2.4.1 用线性表表示集合34
  2.4.2 用线性表表示一元多项式34
 习题与上机实验题36
第3章 栈和队列39
 3.1 栈39
  3.1.1 栈的定义和抽象数据类型描述39
  3.1.2 栈的顺序存储结构40
  3.1.3 栈的链式存储结构42
 3.2 栈的应用举例43
  3.2.1 数制转换43
  3.2.2 括号匹配的检验44
  3.2.3 表达式求值44
  3.2.4 栈与递归47
 3.3 队列50
  3.3.1 队列的定义和抽象数据类型描述50
  3.3.2 队列的链式存储结构50
  3.3.3 队列的顺序存储结构52
 3.4 队列的应用举例54
  3.4.1 打印杨辉三角形54
  3.4.2 停车场管理55
 习题与上机实验题55
第4章 串59
 4.1 串的定义59
  4.1.1 串的基本概念59
  4.1.2 串的抽象数据类型60
 4.2 串的存储结构60
  4.2.1 串的顺序存储结构60
  4.2.2 串的链式存储结构63
 4.3 串的模式匹配64
  4.3.1 朴素的模式匹配算法64
  4.3.2 KMP算法65
 4.4 串的应用举例69
  4.4.1 文本编辑69
  4.4.2 建立词索引表70
 习题与上机实验题73
第5章 数组76
 5.1 数组的定义和特点76
  5.1.1 数组的定义76
  5.1.2 数组的特点77
 5.2 数组的顺序存储表示77
 5.3 矩阵的压缩存储79
  5.3.1 特殊矩阵的压缩存储79
  5.3.2 稀疏矩阵的压缩存储81
 5.4 矩阵的应用举例85
 习题与上机实验题88
第6章 广义表90
 6.1 广义表的基本概念90
 6.2 广义表的存储结构和基本运算91
 6.3 广义表的应用举例94
 习题与上机实验题96
第7章 树和二叉树98
 7.1 树的定义和术语98
 7.2 二叉树100
  7.2.1 二叉树的定义100
  7.2.2 二叉树的性质101
  7.2.3 二叉树的存储结构103
 7.3 二叉树的遍历105
  7.3.1 递归形式的先、中、后序遍历105
  7.3.2 非递归形式的先、中、后序遍历106
  7.3.3 层序遍历109
  7.3.4 二叉树遍历的应用举例109
 7.4 二叉树的线索化110
  7.4.1 线索二叉树的概念110
  7.4.2 线索二叉树的遍历112
  7.4.3 二叉树的线索化过程112
 7.5 树和森林113
  7.5.1 树的存储结构113
  7.5.2 树、森林与二叉树的相互转换115
  7.5.3 树和森林的遍历116
 7.6 哈夫曼树及其应用116
  7.6.1 哈夫曼树的定义116
  7.6.2 哈夫曼编码及数据压缩119
  7.6.3 哈夫曼编码的实现120
 习题与上机实验题121
第8章 图124
 8.1 图的基本概念124
 8.2 图的存储结构127
  8.2.1 数组表示法127
  8.2.2 邻接表129
 8.3 图的遍历131
  8.3.1 深度优先搜索131
  8.3.2 广度优先搜索132
  8.3.3 图的遍历的应用举例134
 8.4 最小生成树134
  8.4.1 普里姆算法134
  8.4.2 克鲁斯卡尔算法136
 8.5 有向无环图及其应用137
  8.5.1 拓扑排序137
  8.5.2 关键路径139
 8.6 最短路径143
  8.6.1 单源最短路径144
  8.6.2 任意两个顶点之间的最短路径146
 习题与上机实验题148
第三部分 数据结构的基本技术
第9章 查找152
 9.1 查找的基本概念152
 9.2 基于线性表的查找153
  9.2.1 顺序查找154
  9.2.2 折半查找155
  9.2.3 分块查找157
 9.3 基于树的查找158
  9.3.1 二叉排序树158
  9.3.2 平衡二叉排序树163
  9.3.3 B-树和B+树166
 9.4 基于散列表的查找170
  9.4.1 散列表的定义及术语171
  9.4.2 散列函数的构造方法171
  9.4.3 处理冲突的方法173
  9.4.4 散列表的插入175
  9.4.5 散列表的查找及性能分析177
 习题与上机实验题177
第10章 排序181
 10.1 概述181
  10.1.1 排序的基本概念181
  10.1.2 内部排序方法182
 10.2 插入排序183
  10.2.1 直接插入排序183
  10.2.2 折半插入排序184
  10.2.3 表插入排序185
  10.2.4 希尔排序187
 10.3 交换排序189
  10.3.1 冒泡排序189
  10.3.2 快速排序190
 10.4 选择排序193
  10.4.1 简单选择排序193
  10.4.2 树形选择排序194
  10.4.3 堆排序195
 10.5 归并排序199
 10.6 基数排序200
  10.6.1 多关键字排序200
  10.6.2 链式基数排序201
 10.7 各种内部排序方法的性能比较204
 10.8 外部排序204
  10.8.1 外部排序过程205
  10.8.2 多路平衡归并206
  10.8.3 置换-选择排序209
  10.8.4 最佳归并树211
 习题与上机实验题213
参考文献217

教学资源推荐
作者: Behrouz Forouzan;Firouz Mosharraf
作者: (土耳其)Ethem Alpaydin 著
作者: 贾春福 钟安鸣 杨骏 编著
作者: (美)June Jamrich Parsons;Dan Oja 著
参考读物推荐
作者: 于中华等
作者: [美] 蒂莫西·G. 马特森(Timothy G. Mattson) 何云(Yun (Helen) He) 爱丽丝·E. 康尼西(Alice E. Koniges) 著
作者: [比] 希普·万登·布鲁克(Seppe vanden Broucke),巴特·巴森斯(Bart Baesens) 著
作者: 华诚科技 编著