当前位置:首页 > 工业技术
数据结构  C语言版
数据结构  C语言版

数据结构 C语言版PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:洪运国编著
  • 出 版 社:上海:上海交通大学出版社
  • 出版年份:2016
  • ISBN:9787313152176
  • 页数:310 页
图书介绍:本书以项目方式全面系统地介绍了各种类型的数据结构,并从逻辑结构、存储结构和基本操作几个方面进行了详细地阐述。全书共八个项目,分别介绍了线性表、栈、队列、串、数组、树、图等基本类型的数据结构,以及查找、排序技术。全书语言精炼、结构合理、图示丰富,给出了众多使用类C语言描述的算法,从而加深读者对抽象概念的理解。与此同时,每个项目都给出了与各项目内容相关的、应用基本算法的众多上机实训,并给出了注释详尽的源代码和测试结果,供读者上机练习之用。另外,每个项目都给出了精心设计的习题和上机操作题,从而使读者强化理解和巩固本项目所学知识。本书可作为高等院校计算机、信息技术类专业的专业课教材,也可作为从事软件设计和开发的相关工程技术人员的参考书。
《数据结构 C语言版》目录

项目一 数据结构导论 1

任务一 了解数据结构的基本知识 1

一、基本术语 2

二、数据的逻辑结构 3

三、数据的存储结构 3

四、数据类型 4

任务二 了解算法的基本知识 6

一、算法的概念 6

二、算法的特性 6

三、算法的描述方法 6

四、算法设计的要求 8

五、算法性能分析 9

六、类C语言简介 10

实训1-1 将百分制成绩转换成五级分制成绩 10

实训1-2 求一组数中的最大数和最小数 13

项目小结 14

习题与上机操作 14

项目二 线性表 16

任务一 了解线性表的定义和基本操作 16

一、线性表的定义 16

二、线性表的基本操作 17

任务二 掌握顺序表的结构特点与基本操作 18

一、顺序表的结构特点 18

二、顺序表的基本操作 19

任务三 掌握链表的结构特点与基本操作 23

一、单链表的结构特点 23

二、单链表的基本操作 25

三、静态链表及其基本操作 31

四、循环链表及其基本操作 33

五、双向链表及其基本操作 34

实训2-1 学生成绩统计 37

实训2-2 求两个集合的交集 41

实训2-3 约瑟夫环问题 44

实训2-4 一元多项式运算 46

项目小结 52

习题与上机操作 52

项目三 栈和队列 55

任务一 了解栈的定义、基本操作和存储结构 55

一、栈的定义及其基本操作 55

二、栈的顺序存储结构 56

三、栈的链式存储结构 60

四、栈在递归中的应用 64

任务二 掌握队列的定义、基本操作和存储结构 65

一、队列的定义及其基本操作 65

二、队列的顺序存储结构 66

三、队列的链式存储结构 69

实训3-1 算术表达式求值 71

实训3-2 汉诺塔问题 78

实训3-3 迷宫求解 80

实训3-4 打印杨辉三角 85

项目小结 89

习题与上机操作 89

项目四 串和数组 92

任务一 了解串的定义、基本操作和存储结构 92

一、串的定义及其基本操作 92

二、定长顺序存储结构 94

三、堆存储结构 100

四、块链存储结构 104

任务二 掌握数组的定义、基本操作和存储结构 105

一、数组的定义及其基本操作 105

二、数组的顺序存储结构 106

任务三 掌握特殊矩阵和稀疏矩阵的压缩存储方法 107

一、特殊矩阵的压缩存储 108

二、稀疏矩阵的压缩存储 110

任务四 了解广义表的定义和存储结构 112

一、广义表的定义 112

二、广义表的存储结构 113

实训4-1 串的查找与替换 114

实训4-2 串的模式匹配 116

实训4-3 稀疏矩阵的转置 121

实训4-4 稀疏矩阵相加 125

项目小结 132

习题与上机操作 132

项目五 树与二叉树 134

任务一 了解树的定义和基本操作 134

一、树的定义和表示方法 134

二、树的基本术语 135

三、树的基本操作 136

任务二 掌握二叉树的特点和常用操作 137

一、二叉树的定义 137

二、二叉树的基本操作 138

三、二叉树的性质 138

四、二叉树的存储结构 140

五、遍历二叉树的方法 143

六、线索二叉树的定义和基本操作 147

任务三 掌握树和森林的存储结构与相关操作 151

一、树的存储结构 151

二、树、森林和二叉树的转换 154

三、树和森林的遍历 157

任务四 了解哈夫曼树的定义、构造方法及其应用 157

一、哈夫曼树的定义 157

二、哈夫曼树的构造 158

三、哈夫曼树编码 159

实训5-1 创建一棵二叉树并求它的高度 160

实训5-2 判断二叉树是否为完全二叉树 163

实训5-3 构造哈夫曼编码 166

实训5-4 8枚硬币的真假判定问题 171

项目小结 175

习题与上机操作 175

项目六 图 178

任务一 了解图的定义、基本术语和基本操作 178

一、图的定义 178

二、图的基本术语 179

三、图的基本操作 181

任务二 掌握图的存储结构 182

一、邻接矩阵表示法 182

二、邻接表表示法 184

三、十字链表表示法 186

四、邻接多重表表示法 188

任务三 掌握图的遍历方法 190

一、深度优先遍历 190

二、广度优先遍历 191

任务四 了解图的相关应用 192

一、生成树和最小生成树 192

二、最短路径 196

三、拓扑排序 199

四、关键路径 203

实训6-1 图的建立与遍历 207

实训6-2 拓扑排序 211

实训6-3 公共汽车的换乘问题 216

项目小结 220

习题与上机操作 220

项目七 查找 223

任务一 了解查找的相关术语 223

任务二 掌握静态查找方法 224

一、顺序查找 225

二、折半查找 226

三、索引顺序查找 230

任务三 掌握动态查找方法 232

一、二叉排序树 233

二、平衡二叉树 241

任务四 掌握哈希查找方法 252

一、哈希表的基本概念 252

二、构造哈希函数的方法 253

三、处理冲突的方法 256

四、哈希表的查找及分析 259

实训7-1 利用折半查找法查找学生成绩 261

实训7-2 创建二叉排序树并查找 264

实训7-3 利用哈希表查找员工信息 267

项目小结 270

习题与上机操作 270

项目八 排序 272

任务一 了解排序的相关概念 272

任务二 掌握插入排序方法 274

一、直接插入排序 274

二、折半插入排序 276

三、希尔排序 277

任务三 掌握交换排序方法 279

一、冒泡排序 279

二、快速排序 281

任务四 掌握选择排序方法 284

一、直接选择排序 284

二、树形选择排序 285

三、堆排序 287

任务五 掌握归并排序和基数排序方法 292

一、归并排序 292

二、基数排序 294

实训8-1 利用直接插入排序方法排序学生成绩表 299

实训8-2 利用冒泡排序方法排序学生成绩表 302

实训8-3 利用直接选择排序方法排序学生成绩表 304

实训8-4 利用堆排序方法排序学生成绩表 305

项目小结 308

习题与上机操作 308

参考文献 310

相关图书
作者其它书籍
返回顶部