《数据结构(C语言)(第二版)

《数据结构(C语言)(第二版) 教材名称: 《数据结构(C语言)(第二版)
ISBN号: 978-7-89436-044-1 作者: 杨勇虎
字数: 957千字 规格: 16开
印制时间: 2012-02-01 出版日期: 2012-02-01
定价: 68 元 样章下载: 978-7-89436-044-1数据结构(C语言)(第二版)样章(加水印).pdf
购买地址:

       “数据结构”是计算机程序设计的重要基础,也是计算机相关专业的一门重要基础核心课程。它对程序设计思想的建立、提升有重要作用,既为后续的计算机课程奠定了一个较为扎实的基础,又可提高学生分析问题和解决问题的能力。
      本教材主要面向计算机及相关专业的本、专科学生。全书共10章:第1章绪论;第2章线性表;第3章栈和队列;第4章树和二叉树;第5章图;第6章排序;第7章查找;第8章数组和广义表;第9章串;第10章综合测试。
第1章绪论1
1.1为什么要学习数据结构2
1.2什么是数据结构2
1.2.1数据的逻辑结构3
1.2.2数据的存储结构5
1.3算法6
1.4C语言基础8
1.4.1基本数据类型8
1.4.2构造数据类型9
1.4.3指针类型11
1.4.4函数14
1.4.5程序结构化和设计风格17
本章小结18
1.5C语言项目实践18
1.5.1求PI值18
1.5.2求斐波那契数列第n项的值19
1.5.3求两个非负整数的最大公约数21
1.5.4筛选法求素数22
1.5.5字符串加密与解密24
1.5.6模拟投掷两个骰子26
1.5.7正态分布的随机小数27
1.6习题29
1.6.1知识点:数据结构的定义29
1.6.2知识点:算法的概念30
第2章线性表33
2.1项目导学34
2.2线性表的逻辑结构34
2.3线性表的顺序存储结构35
2.3.1顺序表的基本概念35
2.3.2顺序表类型定义36
2.3.3顺序表的基本运算37
2.3.4顺序表存储的优缺点43
2.4线性表的链式存储结构43
2.4.1单链表43
2.4.2循环链表69
2.4.3双向链表70
2.5应用实例71
本章小结74
2.6线性表项目实践75
2.6.1动态存储的顺序表75
目录2.6.2双向链表79
2.6.3有序双向链表84
2.6.4一元多次多项式运算89
2.7习题94
2.7.1知识点:线性表的逻辑结构94
2.7.2知识点:线性表的顺序存储结构94
2.7.3知识点:线性表的链式存储结构95
第3章栈和队列101
3.1项目导学102
3.2栈102
3.2.1栈的逻辑结构及基本运算102
3.2.2栈的存储实现和运算实现103
3.3栈的应用举例113
3.3.1数制转换问题113
3.3.2表达式求值114
3.3.3栈与递归120
3.4队列121
3.4.1队列的定义及基本运算121
3.4.2队列的存储实现及运算实现122
3.5队列应用举例134
本章小结136
3.6栈和队列项目实践137
3.6.1基于动态顺序表的栈的实现138
3.6.2基于动态顺序表的循环队列的实现141
3.6.3进制转换144
3.6.4简单表达式求值147
3.6.5n皇后问题150
3.7习题152
3.7.1知识点:栈的基本概念152
3.7.2知识点:栈的存储154
3.7.3知识点:队列的基本概念及其应用156
3.7.4知识点:队列的存储157
第4章树和二叉树161
4.1项目导学162
4.2树163
4.2.1树的定义163
4.2.2树的基本术语164
4.3二叉树165
4.3.1二叉树的定义165
4.3.2二叉树的性质167
4.3.3二叉树的基本操作168
4.3.4二叉树的应用169
4.4二叉树和树的存储结构170
4.4.1二叉树的存储结构170
4.4.2树的存储结构172
4.5树、森林向二叉树的转换176
4.5.1树向二叉树的转换176
4.5.2森林向二叉树的转换177
4.6树与二叉树的遍历177
4.6.1二叉树的遍历177
4.6.2应用实例183
4.6.3树的遍历188
4.6.4线索二叉树188
4.7哈夫曼树(Huffman)191
4.7.1哈夫曼树的基本概念191
4.7.2构造哈夫曼树193
4.7.3哈夫曼编码194
本章小结196
4.8二叉树项目实践196
4.8.1二叉树的链式存储及常见操作196
4.8.2二叉树的顺序存储及常见操作204
4.8.3Huffman编码211
4.9习题215
4.9.1知识点:树和二叉树的基本概念215
4.9.2知识点:二叉树和树的存储结构217
4.9.3知识点:树、森林向二叉树的转换218
4.9.4知识点:树与二叉树的遍历图219
4.9.5知识点:哈夫曼树221
第5章图223
5.1项目导学224
5.2图的基本概念225
5.2.1图的定义和术语225
5.2.2图的基本操作227
5.3图的存储228
5.3.1图的数组存储228
5.3.2图的邻接表存储231
5.3.3有向图的十字链表存储235
5.3.4无向图的邻接多重链表存储239
5.4图的遍历2435.4.1深度优先搜索遍历243
5.4.2广度优先搜索遍历247
5.4.3图的连通性251
5.4.4生成树和生成森林260
5.5最小生成树266
5.5.1基本概念266
5.5.2克鲁斯卡尔(Kruskal)算法267
5.5.3普里姆(Prim)算法273
5.6图的应用280
5.6.1最短路径280
5.6.2AOV网与拓扑排序287
5.6.3AOE图与关键路径294
本章小结304
5.7图的项目实践304
5.7.1图的邻接矩阵存储与遍历305
5.7.2最短路径309
5.7.3图的邻接链表存储与遍历314
5.7.4拓扑排序318
5.8习题321
5.8.1知识点:图的基本概念321
5.8.2知识点:图的存储323
5.8.3知识点:图的遍历324
5.8.4知识点:最小生成树326
5.8.5知识点:图的应用328
第6章排序332
6.1项目导学333
6.2基本概念333
6.3插入排序334
6.3.1直接插入排序334
6.3.2希尔排序336
6.4交换排序339
6.4.1冒泡排序339
6.4.2快速排序342
6.5选择排序345
6.5.1直接选择排序345
6.5.2堆排序347
6.6归并排序352
6.7基数排序355
6.8各种内部排序方法的比较和选择359
本章小结360
6.9排序项目实践360
6.10习题361
6.10.1知识点:直接插入排序361
6.10.2知识点:希尔排序361
6.10.3知识点:冒泡排序362
6.10.4知识点:快速排序362
6.10.5知识点:直接选择排序363
6.10.6知识点:堆排序364
6.10.7知识点:归并排序366
6.10.8知识点:基数排序366
6.10.9综合习题366
第7章查找370
7.1项目导学371
7.2相关概念371
7.3查找算法的度量372
7.4静态查找表373
7.4.1顺序查找373
7.4.2折半查找375
7.4.3分块查找379
7.5动态查找表382
7.5.1二叉排序树382
7.5.2平衡二叉树395
7.5.3B-树和B+树407
7.6哈希表查找413
7.6.1哈希表与哈希查找413
7.6.2哈希函数的构造方法415
7.6.3处理冲突的方法417
7.6.4哈希表的查找分析419
本章小结423
7.7查找项目实践424
7.8习题424
7.8.1知识点:顺序查找424
7.8.2知识点:折半查找425
7.8.3知识点:二叉排序树426
7.8.4知识点:平衡二叉树428
7.8.5知识点:B-树和B+树429
7.8.6知识点:哈希查找430
7.8.7综合习题432
第8章数组和广义表433
8.1项目导学434
8.2数组的顺序存储结构434
8.3特殊数组的压缩存储436
8.3.1稀疏数组436
8.3.2特殊矩阵438
8.4广义表的定义和操作441
8.5广义表的存储结构442
8.6广义表的应用实例444
本章小结445
8.7数组和广义表项目实践445
8.7.1稀疏矩阵的压缩存储445
8.7.2矩阵转置与矩阵相乘449
8.7.3广义表结构的实现452
8.7.4广义表结构的应用456
8.8习题463
8.8.1知识点:数组的定义和顺序存储463
8.8.2知识点:特殊数组的压缩存储464
8.8.3知识点:广义表的基本概念465
第9章串468
9.1项目导学469
9.2串的定义469
9.3串的存储结构470
9.3.1串的顺序存储470
9.3.2串的链式存储471
9.4串的基本操作471
9.4.1求串长度472
9.4.2串拷贝472
9.4.3串连接473
9.4.4串比较475
9.4.5求子串476
9.4.6串的模式匹配477
本章小结482
9.5字符串项目实践482
9.5.1模仿C语言库函数strncpy482
9.5.2模仿C语言库函数strncat484
9.5.3模仿C语言库函数strncmp486
9.5.4求字符串的子串488
9.5.5串的模式匹配489
9.5.6基于动态内存的字符串结构492
9.6习题498
9.6.1知识点:串的基本概念498
9.6.2知识点:串的操作和顺序存储499
9.6.3知识点:串的模式匹配500
第10章综合测试501
10.1综合测试题1501
10.2综合测试题2505
参考文献510
1、本书的每个算法实现都是完整的、全部可以运行通过的C语言程序,便于学生进行大量实践。
2、每章前均有课前导学一节,便于学生初步了解每章内容,清楚该如何学习。
3、每章后均有总结,从整体上回顾课程的知识点,提出重点难点,便于学生更好地学习。
4、穿插了一些板块内容,譬如:帮助理解、脚下留心、深度探险等,便于学生更好地理解具体内容。
5、每章均配有具体的应用实例,便于学生提高学习的兴趣,明白具体的应用。
6、每章习题都根据知识点进行编排,对各章知识点进一步细化,并将相关知识点进行归类;每章收录了部分院校的考研真题,并在对应题目上有所标注;最后一章设置了综合测试题,便于系统复习。