当前位置:首页 > 程序设计 >
《图解数据结构:使用C++》电子书封面

图解数据结构:使用C++

  • 发布时间:2019年12月24日 10:47:02
  • 作者:胡昭民、吴灿铭
  • 大小:196 MB
  • 类别:数据结构电子书
  • 格式:PDF
  • 版本:扫描版
  • 评分:8.9

    数据结构推荐

    图解数据结构:使用C++ PDF 扫描版

      给大家带来的一篇关于数据结构相关的电子书资源,介绍了关于数据结构、C++方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小196 MB,胡昭民、吴灿铭编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.8分

      Tags:

      内容介绍

      数据结构毫无疑问是计算机科学既经典又核心的课程之一,不管是从事计算机软件还是硬件的开发工作,如果没有系统地学习过数据结构或者没有专心自学过,很容易被人打上“非专业”的标签。对于任何在信息技术行业工作的专业人员或者想进入此行业的人来说,什么时候开始学数据结构都不会晚,更不会过时。
      从“数据结构”的名字看,它不仅仅只是讲授数据的结构以及在计算机内如何存储和组织数据的方式,这些只是它的表面现象。数据结构背后真正蕴含的是与之息息相关的算法,精心选择的数据结构配合恰如其分的算法就意味着数据或者信息在计算机内被高效率的存储和高效率的处理。算法其实就是数据结构的灵魂,它既神秘又神奇“好玩”,当然对初学者也比较难,算法可以说是“聪明人在计算机上的游戏”。
      本书是一本综合而且全面讲述数据结构及其算法分析的教科书,为了便于高校的教学或者读者自学,作者在描述数据结构原理和算法时文字清晰且严谨,为每个算法及其数据结构提供了演算的详细图解。另外,为了适合教学中让学生上机实践或者自学者上机“操练”,本书为每个经典的算法都提供了C 语言编写的完整范例程序实例(包含完整的源代码),每个范例程序都不需要经过修改,直接通过编译就可以运行,目的就是让本书的学习者以这些范例程序作为参照迅速掌握数据结构和算法的要点。
      全书的所有范例程序都可以在标准的C 语言编程环境中编译通过并顺利运行,我们在改编本书的过程中选用了免费的Dev C 5.11集成开发环境,对原书的所有范例程序进行编译、修改、调试和测试,并确保它们都可以准确无误地运行。附录A包含了“C/C 编译程序的介绍与安装”,其中重点就介绍了Dev C 。附录B则包含了“C 程序设计语言简介”。

      本书主要讲解如何将数据结构概念用C 程序语言进行实作。本书将复杂的理论结合图文并茂的解说方式,并搭配丰富的图表及范例介绍,将数据结构中重要的观念及演算方法加以诠释,集中学习焦点。 本书适合数据结构的初学者使用,也可以作为计算机相关专业的教科书。

      目录

      • 第1章  数据结构导论 1
      • 1.1  数据结构简介 2
      • 1.1.1  数据结构的应用 2
      • 1.1.2  算法 4
      • 1.1.3  算法的描述工具 5
      • 1.2  认识程序设计 7
      • 1.2.1  高级程序设计语言 7
      • 1.2.2  程序设计要领 8
      • 1.3  程序设计的风格 8
      • 1.3.1  自顶向下与模块化设计8
      • 1.3.2  可读性设计 8
      • 1.3.3  控制结构设计 9
      • 1.3.4  面向对象设计 10
      • 1.4  面向对象设计与C 12
      • 1.4.1  C 的面向对象功能12
      • 1.4.2  类的基本概念 13
      • 1.4.3  访问权限关键词 14
      • 1.4.4  继承关系 15
      • 1.4.5  多态 16
      • 1.5  递归算法 17
      • 1.5.1  递归的定义 17
      • 1.5.2  斐波拉契数列 19
      • 1.5.3  汉诺塔问题 20
      • 1.6  程序效率的分析 25
      • 1.6.1  Big-oh 27
      • 1.6.2  Ω(omega)28
      • 1.6.3  θ(theta)28
      • 本章习题 29
      • 第2章  线性表 33
      • 2.1  线性表的定义 34
      • 2.1.1  线性表的用途 34
      • 2.2  数组 35
      • 2.2.1  一维数组 35
      • 2.2.2  二维数组 37
      • 2.2.3  多维数组 41
      • 2.2.4  结构数组 45
      • 2.2.5  C 的字符串 48
      • 2.2.6  字符串数组 50
      • 2.2.7  String类 51
      • 2.2.8  指针数组 52
      • 2.3  矩阵 54
      • 2.3.1  矩阵的运算 54
      • 2.3.2  稀疏矩阵 57
      • 2.3.3  上三角形矩阵 60
      • 2.3.4  下三角形矩阵 62
      • 2.3.5  带状矩阵 66
      • 本章习题 66
      • 第3章  链表 70
      • 3.1  动态分配内存 71
      • 3.1.1  C 的动态分配变量72
      • 3.1.2  动态配置数组 73
      • 3.2  单向链表 74
      • 3.2.1  单向链表的创建与遍历74
      • 3.2.2  单向链表插入新节点 76
      • 3.2.3  单向链表删除节点78
      • 3.2.4  单向链表的反转 80
      • 3.3  环形链表 82
      • 3.3.1  环形链表中插入新节点83
      • 3.3.2  环形链表节点的删除84
      • 3.3.3  环形链表的连接功能86
      • 3.4  双向链表 87
      • 3.4.1  双向链表的建立与遍历87
      • 3.4.2  双向链表中加入新节点88
      • 3.4.3  双向链表节点的删除90
      • 3.5  链表相关应用简介 91
      • 3.5.1  多项式表式法 92
      • 3.5.2  稀疏矩阵表示法 95
      • 本章习题 97
      • 第4章  堆栈与队列 103
      • 4.1  堆栈简介 104
      • 4.1.1  堆栈的基本操作105
      • 4.1.2  用数组实现堆栈105
      • 4.1.3  用链表实现堆栈107
      • 4.1.4  堆栈类样板的实现108
      • 4.1.5  老鼠走迷宫 109
      • 4.1.6  八皇后问题 112
      • 4.2  算术表达式的表示法114
      • 4.2.1  中序转为前序与后序115
      • 4.2.2  前序与后序转为中序120
      • 4.2.3  中序表示法求值122
      • 4.2.4  前序法的求值运算124
      • 4.2.5  后序法的求值运算125
      • 4.3  队列 125
      • 4.3.1  队列的基本操作126
      • 4.3.2  用数组实现队列126
      • 4.4  队列的相关应用 129
      • 4.4.1  环形队列 129
      • 4.4.2  双向队列 133
      • 4.4.3  优先队列 134
      • 本章习题 135
      • 第5章  树状结构 147
      • 5.1  树的基本概念 148
      • 5.1.1  专有名词介绍 149
      • 5.2  二叉树 150
      • 5.2.1  二叉树的特性 150
      • 5.2.2  特殊二叉树简介152
      • 5.3  二叉树的存储方式 153
      • 5.3.1  一维数组表示法153
      • 5.3.2  链表表示法 155
      • 5.4  二叉树的遍历 156
      • 5.4.1  中序遍历 157
      • 5.4.2  后序遍历 158
      • 5.4.3  前序遍历 158
      • 5.4.4  二叉树节点的插入与删除 160
      • 5.4.5  二叉运算树 165
      • 5.5  线索二叉树 167
      • 5.5.1  二叉树转为线索二叉树167
      • 5.6  树的二叉树表示法 171
      • 5.6.1  树转化为二叉树171
      • 5.6.2  二叉树转换成树173
      • 5.6.3  森林化为二叉树174
      • 5.6.4  二叉树转换成森林175
      • 5.6.5  树与森林的遍历176
      • 5.6.6  确定唯一二叉树180
      • 5.7  优化二叉查找树 182
      • 5.7.1  扩充二叉树 182
      • 5.7.2  霍夫曼树 184
      • 5.8  平衡树 185
      • 5.8.1  平衡树的定义 185
      • 5.9  高级树状结构的研究187
      • 5.9.1  决策树 187
      • 5.9.2  B树 189
      • 5.9.3  二叉空间分割树190
      • 5.9.4  四叉树与八叉树191
      • 本章习题 192
      • 第6章  图形结构 202
      • 6.1  图形简介 203
      • 6.1.1  图的定义 204
      • 6.1.2  无向图 204
      • 6.1.3  有向图 206
      • 6.2  图的数据表示法 207
      • 6.2.1  邻接矩阵法 207
      • 6.2.2  邻接表法 210
      • 6.2.3  邻接复合链表法212
      • 6.2.4  索引表格法 214
      • 6.3  图的遍历 217
      • 6.3.1  深度优先遍历法217
      • 6.3.2  广度优先遍历法219
      • 6.4  生成树 221
      • 6.4.1  DFS生成树和BFS生成树 222
      • 6.4.2  最小生成树 223
      • 6.4.3  Kruskal算法224
      • 6.4.4  Prim算法 227
      • 6.5    图的最短路径 228
      • 6.5.1  单点对全部顶点229
      • 6.5.2  两两顶点间的最短路径232
      • 6.6  AOV网络与拓朴排序235
      • 6.6.1  拓朴排列简介 236
      • 6.7  AOE网络 237
      • 6.7.1  关键路径 238
      • 本章习题 239
      • 第7章  排序 248
      • 7.1  排序简介 249
      • 7.1.1  排序的分类 250
      • 7.2  内部排序法 251
      • 7.2.1  冒泡排序法 251
      • 7.2.2  选择排序法 254
      • 7.2.3  插入排序法 256
      • 7.2.4  希尔排序法 258
      • 7.2.5  合并排序法 260
      • 7.2.6  快速排序法 260
      • 7.2.7  堆积排序法 263
      • 7.2.8  基数排序法 269
      • 7.3  外部排序法 272
      • 7.3.1  直接合并排序法272
      • 7.3.2  k路合并法 275
      • 7.3.3  多相合并法 276
      • 本章习题 276
      • 第8章  查找 286
      • 8.1  常见的查找方法 287
      • 8.1.1  顺序查找法 287
      • 8.1.2  二分查找法 288
      • 8.1.3  插值查找法 290
      • 8.1.4  斐波那契查找法292
      • 8.2  哈希查找法 295
      • 8.2.1  哈希法简介 296
      • 8.3  常见的哈希函数 297
      • 8.3.1  除留余数法 297
      • 8.3.2  平方取中法 297
      • 8.3.3  折叠法 298
      • 8.3.4  数字分析法 299
      • 8.4  碰撞与溢出问题的处理300
      • 8.4.1  线性探测法 300
      • 8.4.2  平方探测 301
      • 8.4.3  再哈希 301
      • 8.4.4  链表 301
      • 本章习题 303
      • 附录A  C/C 编译程序的介绍与安装 309
      • A.1  C/C 编译程序简介310
      • A.2  Dev C 的安装与介绍 313
      • 附录B  C 程序设计语言简介 319
      • B.1  C 语言的基本概念320
      • B.2  C 语言的运算符与表达式 323
      • B.3  C 语言的流程控制327
      • B.4 C 语言的高级语法 332
      • B.5  C 语言与面向对象概念341
      • 附录C  数据结构专有名词索引 349

      以上就是本次介绍的数据结构电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:网页制作与网站建设实战大全

      下一篇:Lua设计与实现

      展开 +

      收起 -

      下载地址:百度网盘下载
      数据结构 相关电子书
      数据结构与算法
      数据结构与算法 PDF 超清扫描版

      《 数据结构与算法 》:系统软件详细介绍各种各样基础数据结构的定义、基本原理和操作步骤,并从算法的视角探讨排列和查找算法。 以难题求出主导线,从难题抽象性、数据抽象和算法抽

      立即下载
      数据结构(C语言版)
      数据结构(C语言版) PDF 完整第2版

      《数据结构(C语言版 第2版)/21世纪高等学校计算机规划教材》 在选材与编排上,贴近当前普通高等院校数据结构课程的现状和发展趋势,符合新研究生考试大纲,内容难度适度,突出实用性

      立即下载
      Python数据结构与算法分析
      Python数据结构与算法分析 PDF 完整第2版

      若把撰写代码比成急行军打战,那麼要想独霸战场,不可以光靠手上的尖刀,还需深得古语。Python是一把尖刀,数据结构与优化算法则是古语。只能通读古语,才可以使尖刀无坚不摧。《 Pyt

      立即下载
      数据结构与算法经典问题解析:Java语言描述
      数据结构与算法经典问题解析:Java语言描述 PDF 第2版

      数据结构与算法经典问题解析:Java语言描述(原书第2版) 是一本数据结构方面的优秀教材,以Java为描述语言,介绍了计算机编程中使用的数据结构和算法。本书强调问题及其分析,而非理论阐

      立即下载
      学习JavaScript数据结构与算法(第3版)
      学习JavaScript数据结构与算法(第3版) PDF 完整高清版 立即下载
      数据结构与算法分析:C语言描述
      数据结构与算法分析:C语言描述 PDF 含答案高清版

      书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能、效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构

      立即下载
      数据结构、算法与应用:C++语言描述
      数据结构、算法与应用:C++语言描述 PDF 第2版

      数据结构、算法与应用:C++语言描述(原书第2版) 共分三个部分。第一部分从第1章到第4章,旨在复习C++程序设计的概念以及程序性能的分析和测量方法。第二部分从第5章到第16章,研究数据结构

      立即下载
      数据结构教程(学习指导/上机实验)
      数据结构教程(学习指导/上机实验) PDF 完整第5版

      这书配套设施20钟头的视频教学,本实例教程突显上机操作实习内容,书中得出很多的上机操作试验题(分成认证、布置和综合性试验),供老师和大学生采用。为了更好地老师课堂教学和孩子

      立即下载
      读者心得
      133小时53分钟前回答

      C++与mysql连接遇到的问题汇总

      最近接触了很多数据库的东西,本来是一直接触的是sql server,不过由于项目需要就开始对mysql进行了连接。下面就让我这个菜鸟浅谈下经验吧。 对于C++连接mysql,我不太喜欢多下载一个软件mysqlodbc,所以采用的是通过mysql自己的API函数进行连接: 1、使用API的方式连接,需要加载mysql的头文件和lib文件。 在VS2010的附加包含目录中添加\MySQL\MySQL Server 5.1\include。在安装MySql的目录下找。 把libmysql.dll和libmysql.lib文件拷贝到所建的工程目录下。然后在头文件里包含以下内容: //mysql所需的头文件和库文件 #include "winsock.h" #include "mysql.h" #pragma comment(lib,"libmySQL.lib") 2、进行编码 (1)连接mysql数据库 头文件里定义数据……

      112小时15分钟前回答

      python或C++读取指定文件夹下的所有图片

      本文实例为大家分享了python或C++读取指定文件夹下的所有图片,供大家参考,具体内容如下 1.python读取指定文件夹下的所有图片路径和图片文件名 import cv2from os import walk,pathdef get_fileNames(rootdir): data=[] prefix = [] for root, dirs, files in walk(rootdir, topdown=True): for name in files: pre, ending = path.splitext(name) if ending != ".jpg" and ending != ".jepg" and ending != ".png": continue else: data.append(path.join(root, name)) prefix.append(pre) return data, prefixif __name__ == '__main__': images, preifx = get_fileNames('/home/yasin/target_pics') #得到指定文件夹下的图片,例如.jpg,.jepg或.png等,可根据上述代码更改 for i in range(len(images)): img = cv2.imread(images[i]) w = img.shape[1] l = img.sha……

      141小时3分钟前回答

      解决安装mysqlclient的时候出现Microsoft Visual C++ 14.0 is required报错

      在安装mysqlclient的时候出现了以下报错: 解决办法: 1.到提示网址:https://visualstudio.microsoft.com/download/里面下载对应VC++版本安装后继续安装mysqlclient。但是本人没有找到对应文件,故不再过多赘述,这里说下第二种方法。 2.1到https://www.lfd.uci.edu/~gohlke/pythonlibs/找到mysqlclient编译包下载对应版本: 注:前面代表python版本,后面的win代表Python位数。 2.2进入到文件放置的文件夹,比如我是将下载好的文件放在了c:\envs\django1-env并安装: 2.3提示安装成功,问题解决 总结 以上所述是小编给大家介绍的解决安装mysqlclient的时候出现Microsoft Visual C++ 14.0 is required报错,希望对大家有所帮助,如果大家有任何疑问请给我留……

      131小时40分钟前回答

      Linux下python与C++使用dlib实现人脸检测

      python 与 C++ dlib人脸检测结果对比,供大家参考,具体内容如下 说明: 由于项目需求发现Linux下c++使用dlib进行人脸检测和python使用dlib检测,得到的结果出入比较大,于是写了测试用例,发现影响结果的原因有但不限于: 1.dlib版本不同(影响不大,几个像素的差别) 2.dlib 人脸检测中detector()第二个参数的设置测试结果如下: python PDlib.py: # -*- coding: utf-8 -*-import sysimport cv2 import dlibfrom skimage import iodetector = dlib.get_frontal_face_detector()win = dlib.image_window()for f in sys.argv[1:]: img = io.imread(f) dets = detector(img,1) #使用detector进行人脸检测 for i, d in enumerate(dets): x = d.left() y = d.top() w = d.right() h = d.bottom() cv2.rectangle(img, (x, y)……

      码农之家

      易炎彬 提供上传

      资源
      48
      粉丝
      41
      喜欢
      200
      评论
      9

      Copyright 2018-2021 www.xz577.com 码农之家

      版权投诉 / 书籍推广:520161757@qq.com