数据结构简明教程(第2版)-微课版
作者:李春葆、蒋林、方颖、喻丹丹、曾平
出版社:清华大学出版社
ISBN:9787302516309
VIP会员免费
(仅需0.8元/天)
¥ 32.18
温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!
电子书推荐
-
零基础学数据结构(第2版).陈锐(带详细书签).pdf 评分:
数据结构是计算机专业的专业基础课和核心课程。本书内容全面,语言通俗易懂,案例典型、丰富,结构清晰,重难点突出,所有算法都有完整程序,能直接运行。《零基础学编程:零基础学数据结构(第2版)》内容包括数据结构概述、常用的C程序开发环境、线性表、栈、队列、串、数组、广义表、树、图、查找及排序。本书可作为学习数据结构与算法、从事计算机软件开发、准备考取计算机专业研究生和参加软考的人员的参考书,也可以作为计算机及相关专业的数据结构课程教材。 第一篇 基础知识 1 第1章 数据结构概述 1 1.1 为什么要学习数据结构 1 1.2 基本概念和术语 2 1.3 数据的逻辑结构与存储结构 4 1.3.1 逻辑结构 4 1.3.2 存储结构 4 1.4 抽象数据类型及其描述 5 1.4.1 什么是抽象数据类型 5 1.4.2 抽象数据类型的描述 6 1.5 算法 8 1.5.1 数据结构与算法的关系 8 1.5.2 什么是算法 8 1.5.3 算法的五大特性 9 1.5.4 算法的描述 9 1.6 算法分析 10 1.6.1 算法设计的4个目标 11 1.6.2 算法效率评价 11 1.6.3 算法的时间复杂度 12 1.6.4 算法的空间复杂度 14 1.7 学好数据结构的秘诀 14 1.8 习题 15 第2章 C语言基础 17 2.1 C语言开发环境 17 2.1.1 Turbo C 2.0开发环境 17 2.1.2 Visual C++ 6.0开发环境 19 2.2 递归与非递归 22 2.2.1 函数的递归调用 22 2.2.2 递归应用举例 23 2.2.3 迭代与递归 26 2.3 指针 27 2.3.1 什么是指针 27 2.3.2 指针变量的间接引用 28 2.3.3 指针与数组 29 2.3.4 指针函数与函数指针 34 2.4 参数传递 40 2.4.1 传值调用 40 2.4.2 传地址调用 42 2.5 结构体与联合体 44 2.5.1 结构体的定义 45 2.5.2 指向结构体的指针 47 2.5.3 用typedef定义数据类型 48 2.5.4 联合体 49 2.6 链表 54 2.6.1 内存的动态分配与释放 54 2.6.2 什么是链表 55 2.6.3 创建链表 55 2.6.4 链表的输出操作 58 2.6.5 链表的插入操作 60 2.6.6 链表的删除操作 64 2.6.7 链表的综合操作 66 2.6.8 链表应用举例:一元多项式的相加 67 2.7 小结 73 2.8 习题 74 第二篇 线性数据结构 77 第3章 线性表 77 3.1 线性表的定义及抽象数据类型 77 3.1.1 线性表的逻辑结构 77 3.1.2 线性表的抽象数据类型 78 3.2 线性表的顺序表示与实现 79 3.2.1 线性表的顺序存储结构 79 3.2.2 顺序表的基本运算 80 3.2.3 顺序表的实现算法分析 83 3.2.4 顺序表的优缺点 83 3.2.5 顺序表应用举例 84 3.3 线性表的链式表示与实现 89 3.3.1 单链表的存储结构 90 3.3.2 单链表上的基本运算 91 3.3.3 单链表存储结构与顺序存储结构的优缺点 96 3.3.4 单链表应用举例 97 3.4 循环单链表 104 3.4.1 循环链表的链式存储 104 3.4.2 循环单链表应用举例 106 3.5 双向链表 108 3.5.1 双向链表的存储结构 108 3.5.2 双向链表的插入和删除操作 109 3.5.3 双向链表应用举例 111 3.6 静态链表 113 3.6.1 静态链表的存储结构 114 3.6.2 静态链表的基本运算 114 3.6.3 静态链表应用举例 117 3.7 综合案例:一元多项式的表示与相乘 118 3.7.1 一元多项式的表示 118 3.7.2 一元多项式相乘 119 3.8 小结 123 3.9 习题 123 第4章 栈 127 4.1 栈的定义与抽象数据类型 127 4.1.1 什么是栈 127 4.1.2 栈的抽象数据类型 128 4.2 栈的顺序表示与实现 128 4.2.1 栈的顺序存储结构 128 4.2.2 顺序栈的基本运算 129 4.2.3 顺序栈应用举例 131 4.3 栈的链式表示与实现 136 4.3.1 栈的链式存储结构 137 4.3.2 链栈的基本运算 137 4.3.3 链栈应用举例 140 4.4 栈的典型应用 141 4.4.1 括号匹配 141 4.4.2 求算术表达式的值 144 4.4.3 迷宫求解 151 4.5 栈与递归 156 4.5.1 递归 156 4.5.2 消除递归 160 4.6 小结 162 4.7 习题 163 第5章 队列 165 5.1 队列的定义与抽象数据类型 165 5.1.1 什么是队列 165 5.1.2 队列的抽象数据类型 165 5.2 队列的顺序存储及实现 166 5.2.1 顺序队列的表示 166 5.2.2 顺序队列的“假溢出” 167 5.2.3 顺序循环队列的表示 167 5.2.4 顺序循环队列的基本运算 169 5.2.5 顺序循环队列举例 170 5.3 队列的链式存储及实现 172 5.3.1 链式队列的表示 172 5.3.2 链式队列的基本运算 173 5.3.3 链式队列举例 175 5.4 双端队列 179 5.4.1 什么是双端队列 179 5.4.2 双端队列的应用 179 5.5 综合案例:动画模拟停车场管理系统 181 5.6 小结 194 5.7 习题 194 第6章 串 197 6.1 串的定义及抽象数据类型 197 6.1.1 什么是串 197 6.1.2 串的抽象数据类型 198 6.2 串的顺序表示与实现 199 6.2.1 串的顺序存储结构 199 6.2.2 顺序串的基本运算 200 6.2.3 顺序串应用举例 203 6.3 串的堆分配表示与实现 205 6.3.1 堆分配的存储结构 205 6.3.2 堆串的基本运算 205 6.4 串的块链式存储表示与实现 208 6.4.1 串的块链式存储结构 208 6.4.2 块链串的基本运算 209 6.5 串的模式匹配 212 6.5.1 朴素模式匹配算法——Brute-Force 212 6.5.2 KMP算法 214 6.5.3 模式匹配应用举例 219 6.6 小结 223 6.7 习题 224 第7章 数组 226 7.1 数组的定义及抽象数据类型 226 7.1.1 重新认识数组 226 7.1.2 数组的抽象数据类型 227 7.2 数组的顺序表示与实现 227 7.2.1 数组的顺序存储结构 227 7.2.2 数组的基本运算 229 7.2.3 数组应用举例 231 7.3 特殊矩阵的压缩存储 233 7.3.1 对称矩阵的压缩存储 233 7.3.2 三角矩阵的压缩存储 233 7.3.3 对角矩阵的压缩存储 235 7.4 稀疏矩阵的压缩存储 236 7.4.1 什么是稀疏矩阵 236 7.4.2 稀疏矩阵抽象数据类型 236 7.4.3 稀疏矩阵的三元组表示 236 7.4.4 稀疏矩阵的三元组实现 237 7.5 稀疏矩阵应用举例 241 7.5.1 三元组表示的稀疏矩阵相加 241 7.5.2 三元组表示的稀疏矩阵相乘 244 7.6 稀疏矩阵的十字链表表示与实现 249 7.6.1 稀疏矩阵的十字链表表示 249 7.6.2 十字链表的基本运算 250 7.7 小结 252 7.8 习题 252 第8章 广义表 254 8.1 广义表的定义及抽象数据类型 254 8.1.1 什么是广义表 254 8.1.2 广义表的抽象数据类型 255 8.2 广义表的头尾链表表示与实现 255 8.2.1 广义表的头尾链表存储结构 255 8.2.2 广义表的基本运算 256 8.2.3 广义表应用举例(采用头尾链表存储结构) 259 8.3 广义表的扩展线性链表表示与实现 263 8.3.1 广义表的扩展线性链表存储结构 263 8.3.2 广义表的基本运算 264 8.3.3 广义表应用举例(扩展线性链表存储结构) 266 8.4 小结 269 8.5 习题 269 第三篇 非线性数据结构 271 第9章 树 271 9.1 树的相关概念及抽象数据类型 271 9.1.1 什么是树 271 9.1.2 树的相关概念 272 9.1.3 树的逻辑表示 272 9.1.4 树的抽象数据类型 273 9.1.5 树的存储结构 274 9.2 二叉树的相关概念及抽象数据类型 277 9.2.1 什么是二叉树 277 9.2.2 二叉树的性质 277 9.2.3 二叉树的抽象数据类型 280 9.3 二叉树的存储表示与实现 281 9.3.1 二叉树的顺序存储 281 9.3.2 二叉树的链式存储 282 9.3.3 二叉树的基本运算 282 9.4 遍历二叉树 285 9.4.1 什么是遍历二叉树 285 9.4.2 遍历二叉树 286 9.4.3 非递归遍历二叉树——基于栈的递归消除 288 9.5 遍历二叉树的应用 290 9.5.1 按层次输出二叉树 290 9.5.2 二叉树的计数 291 9.5.3 求叶子结点的最大最小枝长 293 9.5.4 判断两棵二叉树是否相似 294 9.5.5 交换二叉树的左右子树 294 9.5.6 求根结点到r结点之间的路径 294 9.6 线索二叉树 296 9.6.1 什么是线索化二叉树 296 9.6.2 线索二叉树 297 9.6.3 遍历线索二叉树 298 9.6.4 线索二叉树应用举例 300 9.7 树、森林与二叉树 304 9.7.1 树转换为二叉树 304 9.7.2 森林转换为二叉树 305 9.7.3 二叉树转换为树和森林 306 9.7.4 树和森林的遍历 306 9.7.5 树与二叉树应用举例 307 9.8 综合案例:哈夫曼树 320 9.8.1 什么是哈夫曼树 320 9.8.2 哈夫曼编码 322 9.8.3 哈夫曼编码算法的实现 322 9.9 小结 326 9.10 习题 327 第10章 图 330 10.1 图的定义与相关概念 330 10.1.1 什么是图 330 10.1.2 图的相关概念 331 10.1.3 图的抽象数据类型 333 10.2 图的存储结构 334 10.2.1 邻接矩阵(数组表示法) 334 10.2.2 邻接表 338 10.2.3 十字链表 343 10.2.4 邻接多重链表 344 10.3 图的遍历 345 10.3.1 图的深度优先搜索 345 10.3.2 图的广度优先搜索 348 10.4 图的连通性问题 349 10.4.1 无向图的连通分量与最小生成树 349 10.4.2 最小生成树 351 10.5 有向无环图 359 10.5.1 AOV网与拓扑排序 360 10.5.2 AOE网与关键路径 362 10.6 最短路径 367 10.6.1 从某个顶点到其余各顶点的最短路径 367 10.6.2 每一对顶点之间的最短路径 372 10.6.3 最短路径应用举例 374 10.7 图的应用举例 375 10.8 小结 383 10.9 习题 383 第四篇 查找与排序 387 第11章 查找 387 11.1 基本概念 387 11.2 静态查找 388 11.2.1 顺序表的查找 388 11.2.2 有序顺序表的查找 389 11.2.3 索引顺序表的查找 391 11.2.4 静态查找应用举例 393 11.3 动态查找 395 11.3.1 二叉排序树 395 11.3.2 平衡二叉树 402 11.4 B-树与B+树 408 11.4.1 B-树 408 11.4.2 B+树 415 11.5 哈希表 415 11.5.1 什么是哈希表 416 11.5.2 哈希函数的构造方法 416 11.5.3 处理冲突的方法 417 11.5.4 哈希表应用举例 419 11.6 小结 422 11.7 习题 423 第12章 内排序 425 12.1 基本概念 425 12.2 插入排序 426 12.2.1 直接插入排序 426 12.2.2 折半插入排序 428 12.2.3 希尔排序 430 12.2.4 插入排序应用举例 431 12.3 交换排序 434 12.3.1 冒泡排序 434 12.3.2 快速排序 437 12.3.3 交换排序应用举例 439 12.4 选择排序 442 12.4.1 简单选择排序 443 12.4.2 堆排序 444 12.4.3 选择排序应用举例 448 12.5 归并排序 451 12.5.1 2路归并排序算法 452 12.5.2 归并排序应用举例 453 12.6 基数排序 455 12.6.1 基数排序算法 455 12.6.2 基数排序应用举例 458 12.7 小结 462 12.8 习题 462 第13章 外排序 464 13.1 外存的存取特性 464 13.2 磁盘排序 465 13.2.1 归并排序的基本方法 466 13.2.2 多路归并排序 467 13.3 磁带排序 468 13.3.1 2路归并排序 468 13.3.2 多路非平衡归并排序 469 13.4 小结 470 参考文献 471
上传时间:2019-03 大小:95.92MB
- 1.77MB
数据结构(李春葆)(第二版)
2009-01-02李春葆的数据结构(第二版)ppt和书上源代码
- 78.40MB
零基础学数据结构 陈锐等编著
2018-04-27有完整源代码,非常详细 看严蔚敏的书总是看不懂,这个书可以作为参考. 相当有用
- 1.4MB
数据结构第二版(李春葆版)课后习题源代码
2009-11-27本资源包含了数据结构第二版(李春葆版)课后习题的所有源代码,并且都在VC++上编译通过。
- 75KB
零基础学数据结构经典推荐
2010-05-12代码,陈锐,零基础学数据结构,推荐,机械工业
- 5.77MB
零基础学数据结构配套代码(陈锐)
2013-12-06零基础学数据结构配套代码,很齐全的代码,包括例题和课后习题答案,有助于学习数据结构哦!
- 7KB
零基础学数据结构源码(文档)下载(陈锐主编)
2010-05-12零基础学数据结构,文档下载,谢谢,呵呵, 考研
- 1.8MB
《零基础学数据结构源码》(陈锐编)源代码
2013-04-24苦苦在网上寻找这本书的大神些,这些代码就再此啦。欢迎下载
- 40.0MB
零基础学数据结构
2013-09-12零基础学学数据结构,陈锐著,高清版本,文件一共70多兆,分成两个压缩卷,下载后两个压缩卷一起解压即可
- 391KB
零基础学数据结构课件下载
2010-05-12零基础学数据结构课件下载,花影 零基础学数据结构,机械工业,陈锐主编
- 3.57MB
数据结构教程(李春葆编)的习题答案
2008-12-04数据结构教程(李春葆编)的习题答案仅供参考
- 72KB
数据结构简明教程上机实验题.doc
2019-12-07定义数据类型为AComplex,其中,复数的实部和虚部均为整数,包含创建一个复数和输出一个复数的基本运算,在此基础上再定义两个复数运算的抽象数据类型为BComplex,包含两个复数的加法、减法、乘法运算。编写程序实现这两个抽象数据类型,并采用相关数据测试。
- 1.46MB
数据结构简明教程
2013-03-10数据结构 简明教程 清华大学出版的 非常清晰版本 初学者很实用
- 3.14MB
零基础学数据结构源代码
2011-01-07数据结构源代码。里面包含数据结构各方面的知识,源代码。编译通过。每个例题都与零基础学数据结构书上的例题对应。方便学习
- 1.44MB
【热】零基础学数据结构,课件
2010-05-12零基础学数据结构, 数据结构, 零基础学 课件下载
- 40.0MB
零基础学学数据结构part2
2015-04-20零基础学学数据结构第二部分,陈锐著,下载后两个压缩卷一起解压即可
- 778KB
C,C++数据结构与算法速用速学大辞典代码
2018-02-25C,C++数据结构与算法速用速学大辞典代码 书籍中的代码
- 183KB
程序设计多媒体陈锐主编PPT学习教案.pptx
2021-10-03程序设计多媒体陈锐主编PPT学习教案.pptx
- 31.59MB
C语言入门与提高_12764492.part2
2013-06-21C语言入门与提高,陈锐主编,高清电子书 目录 第1篇 起步篇 第1章 C语言概述 1.1 为什么要学习C语言 1.1.1 学习C语言的好处 1.1.2 如何学好C语言 1.2 C语言的特点 1.3 程序设计基础 1.3.1 十进制数的表示 ...
- 13.85MB
数据结构实用教程
2013-03-21数据结构实用教程 主编徐孝凯 pdf格式 适合初学者
- 226KB
数据结构实用教程第二版答案
2014-11-20数据结构实用教程第二版答案_徐孝凯 清华大学出版社 大学计算机专用教材
- 131KB
C程序设计多媒体陈锐主编实用PPT课件.pptx
2021-10-06C程序设计多媒体陈锐主编实用PPT课件.pptx
- 1.4MB
论文研究-基于H.264 CAVLC的音视频同步算法 .pdf
2019-08-23基于H.264 CAVLC的音视频同步算法,陈锐,李冰,针对多媒体网络应用中经常出现的音视频不同步的问题,提出两种基于H.264/AVC视频编码标准的音视频同步算法。这两种算法均是基于H.264
- 40.0MB
C语言入门与提高_12764492.part1
2013-06-21C语言入门与提高,陈锐主编,高清电子书 目录 第1篇 起步篇 第1章 C语言概述 1.1 为什么要学习C语言 1.1.1 学习C语言的好处 1.1.2 如何学好C语言 1.2 C语言的特点 1.3 程序设计基础 1.3.1 十进制数的...
- 86.19MB
java游戏编程原理与实践教程pdf+源代码
2018-03-25java游戏编程原理与实践教程pdf+源代码 陈锐、夏敏捷、葛丽萍主编
- 10.3MB
ASP.NET 2.0 陈锐老师课程系列二
2009-04-14ASP.NET 2.0 陈锐老师课程系列二