文件已上传到百度网盘,附件中是下载地址。真正免积分免费完整版,绝不出现仅下载到部分章节,书中广告页要求QQ联系支付宝购买完整版的流氓行为! 欢迎免积分下载更多本人独有网上难寻觅的 高清IT电子书:http://download.csdn.net/user/sinophp123 人无我有,人有我优,人优我廉!我的版本是全网最清晰的独家制作版本,还不要资源分。 同样一本书,下我的就可以了! 本人上传资料的原则: (1)如果CSDN和网上其他地方已随处可见高清下载,本人不再上传。 (2)如果网上已有我还上传,那么肯定是经重新制作,如不再缺页,清晰度更高,或者加上书签。 (3)每本书都经过逐页纯手工精心处理,包括清晰度的增强,水印的去除。当然最重要的,是尽量保证有书 签方便您浏览。 (4)如果是中译版,文件名前半部分是英文原版书名,后面是中译版书名。 如:“Implementing.Responsive.Design-响应式Web设计实践”。书名经反复校对绝无一字错漏。 (5)每本pdf书默认都是有书签的。来源不限“某星”网站,还有各大网络书店和出版社官网的页码信息。 凡无书签的pdf文件名均含“_no.bookmark”字样,如“HTML5程序开发范例宝典_no.bookmark”。请不要再 浪费时间去寻找书签,肯定没有,网上别人提供的下载版本也绝对不会有(除非您是出版社内部人员!), 没有人会浪费自己时间逐页输入章节页码来费时费力免费给您制作。 (6)只提供中文书籍,您不用担心下载的是英文原版。 (7)只提供完整版,绝不上传只有部分章节的所谓“迷你书”,“试读版”。 (8)书中绝不含广告页和水印LOGO。 Teach.Yourself.NoSQL.with.MongoDB.in.24.Hours-MongoDB入门经典 [美]布拉德·戴利(brad dayley)(著) | 米爱中(译) | 人民邮电出版社 | 9787115391117 | 2015-06-01
2023-05-06 22:55:02 1KB 云计算 大数据 NOSQL 数据库
1
在信息安全成为研究和应用的热点当下,如何提供完备而又紧致的数学基础知识,使信息安全中的基本理论和方法能成为自我完备的知识体系,这不仅是信息安全知识体系自身的需要,也是信息安全学科的一种内在要求,更是信息安全专业人才培养中最基本的前提条件之一。 分析信息安全的相关知识体系结构,不难发现,加密算法和认证技术是其中最主要的部分,信息安全的理论发展和技术创新离不开这两个部分,所以加密算法和认证技术的支撑理论自然成了不折不扣的基础知识,因此把在加密算法和认证技术中用到的数学知识进行归纳,把它们辑成一个整体,就构成了张焕炯的《加密与认证技术的数学基础》这样一本书籍。 《加密与认证技术的数学基础》系统地介绍了加密算法与认证技术所需要的数学基础知识,它们涉及到布尔代数、线性代数、数论、抽象代数和椭圆曲线等内容,并就这些数学知识在加密与认证等技术中的应用也进行了简要的分析介绍。《加密与认证技术的数学基础》共分8章,第1章介绍了加密与认证技术与相关数学基础的关系;第2章介绍了布尔代数中的有关异或运算的性质;第3章重点论述了矩阵的相关运算;第4章着重介绍了整数之间的相除及最大公因数、最小公倍数等相关知识;第5章涉及同余及同余式的求解问题,对各种同余式及同余式组的解的存在性、解的个数及如何求解进行了深入分析;第6章涉及索性检验问题,对各种重要的素性检验方法进行了梳理,这其中也包括某些最新的检验方法;第7章分别就群、环、域和模等抽象代数的基本概念进行梳理分析;第8章主要介绍了椭圆曲线的相关性质。这样把包括三个数学难解问题在内的、面向单钥制和双钥制加密及相关认证技术的数学基础知识进行了完整的梳理,构成了相对完备的数学知识体系。 《加密与认证技术的数学基础》注重思想方法和技能的训练及培养,可作为信息安全、通信工程、信息工程及计算机专业等本科生及相关研究生的教材,也可作为从事相关专业科研、工程技术等人员的参考书。 第1章 绪言 1.1 加密与认证技术 1.2 加密与认证技术的基础数学 思考题 第2章 布尔代数基础 2.1 布尔代数中的逻辑变量(值) 2.2 二值条件下的布尔代数的基本运算 2.3 二值布尔代数中的异或运算 2.4 单向函数 2.5 流密码简介 2.6 随机数及伪随机数 思考题 第3章 线性代数基础 3.1 行列式的概念 3.2 向量和矩阵及其基本运算 3.3 向量组的线性相关及线性无关 3.4 矩阵的相似关系 3.5 矩阵的合同变换 3.6 块密码简介 思考题 第4章 整数及其除运算的基本性质 4.1 整数的整除关系、基本属性及表述形式 4.2 整数数组的最大公因数和最小公倍数 思考题 第5章 同余及同余式 5.1 同余关系 5.2 剩余类 5.3 求模运算 5.4 一次同余式的求解及中国剩余定理 5.5 二次同余式 5.6 素数模条件下的同余式求解及奇素数模条件下的二次剩余 5.7 奇素数模条件下的二次剩余的计算及二次同余式的求解 5.8 合数模条件下的二次剩余的计算及二次同余式的求解 5.9 素数的平方表示 5.10 高次同余式 5.11 在密码学中的应用举例 思考题 第6章 素性检验 6.1 素数概述 6.2 切贝晓夫不等式及素数定理 6.3 Miller—Rabin素性检验方法 6.4 费马素性检验 6.5 Solovay-Stassen素性检验 6.6 一种确定性的素性检验方法 6.7 其他的素性检验方法 6.8 素性检验的应用 思考题 第7章 抽象代数基础 7.1 抽象代数中的相关概念 7.2 群 7.2.1 群的定义 7.2.2 群的结构分析 7.3 几种具体的群 7.3.1 循环群 7.3.2 置换群 7.3.3 有限生成交换群 7.3.4 离散对数问题及在数字签名中的应用 7.4 环 7.4.1 环的定义及基本性质 7.4.2 理想 7.4.3 同态和同构 7.4.4 环结构举例 7.5 域 7.5.1 域的定义及枸造 7.5.2 扩域的概念及性质 7.5.3 有限域及其构造 7.6 模 7.6.1 模的定义及子模、商模 7.6.2 模的同态与自由模 思考题 第8章 椭圆曲线概述 8.1 椭圆曲线的基本概念 8.2 椭圆曲线上的运算规则 8.3 不同域上的椭圆曲线介绍 8.4 椭圆曲线上的离散对数问题 8.5 基于椭圆曲线离散对数难解问题的密码体制简介 思考题 参考文献
2023-04-04 16:08:50 47.88MB 加密 解密 认证 密码学
1
文件已上传到百度网盘,附件中是下载地址。真正免积分免费完整版,绝不出现仅下载到部分章节,书中广告页要求QQ联系支付宝购买完整版的流氓行为! 欢迎免积分下载更多本人独有网上难寻觅的 高清IT电子书:http://download.csdn.net/user/sinophp123 人无我有,人有我优,人优我廉!我的版本是全网最清晰的独家制作版本,还不要资源分。 同样一本书,下我的就可以了! 本人上传资料的原则: (1)如果CSDN和网上其他地方已随处可见高清下载,本人不再上传。 (2)如果网上已有我还上传,那么肯定是经重新制作,如不再缺页,清晰度更高,或者加上书签。 (3)每本书都经过逐页纯手工精心处理,包括清晰度的增强,水印的去除。当然最重要的,是尽量保证有书 签方便您浏览。 (4)如果是中译版,文件名前半部分是英文原版书名,后面是中译版书名。 如:“Implementing.Responsive.Design-响应式Web设计实践”。书名经反复校对绝无一字错漏。 (5)每本pdf书默认都是有书签的。来源不限“某星”网站,还有各大网络书店和出版社官网的页码信息。 凡无书签的pdf文件名均含“_no.bookmark”字样,如“HTML5程序开发范例宝典_no.bookmark”。请不要再 浪费时间去寻找书签,肯定没有,网上别人提供的下载版本也绝对不会有(除非您是出版社内部人员!), 没有人会浪费自己时间逐页输入章节页码来费时费力免费给您制作。 (6)只提供中文书籍,您不用担心下载的是英文原版。 (7)只提供完整版,绝不上传只有部分章节的所谓“迷你书”,“试读版”。 (8)书中绝不含广告页和水印LOGO。 The.Book.of.CSS3-CSS3专业网页开发指南 (英)peter gasston(著) | 李景媛;吴晓嘉(译) | 人民邮电出版社 | 9787115342959 | 2014-03-01
2023-02-24 15:49:58 1KB HTML5 CSS3 JavaScript 框架
1
  浮现式设计是一种敏捷技术,强调在开发过程中不断演进。《浮现式设计:专业软件开发的演进本质》的讨论围绕着专业软件开发方法的演进主题展开,强调了让软件成为一个真正专业的重要性,以及以演进方式开发软件的重大意义。书中谈到了如何在演进过程中综合运用设计模式、重构、单元测试和测试驱动开发等实践,以及何时制定耦合、内聚和封装等关键决策,而且通过准确生动的示例说明了如何开发出真正有用的软件。   《浮现式设计:专业软件开发的演进本质》主要面向软件开发者群体,尤其是对敏捷开发感兴趣的程序设计人员。 第1章 软件开发这个职业 1 1.1 人类制作软件已经有多久的历史了 1 1.2 软件开发是一种什么样的活动 2 1.3 软件开发缺少了什么 4 1.4 谁说了算 6 1.5 独特性 6 第2章 从衣橱到探月 8 2.1 软件开发中的模式和专业化 8 2.2 Andrea的衣橱 9 2.3 探月 13 2.3.1 因素的连锁变化 16 2.3.2 不同的因素导致不同的设计 16 2.3.3 还有更多环境因素 17 2.3.4 成本和获益 18 2.3.5 火星探险 18 2.4 模式的价值 19 2.5 小结 20 第3章 软件开发的本质 21 3.1 失败率过高 21 3.2 成功的定义 22 3.3 Standish Group 23 3.4 做了错误的事情 24 3.5 做事的方式错了 25 3.6 随着时间的推移,软件开发也有所改善 27 3.7 一个原因:土木工程的类比 27 3.8 放弃希望 29 3.9 有时等待和拖延也是必要的 30 3.10 桥是硬的,软件是软的 30 3.11 我们在变化的海洋中游泳 31 3.12 接受变化 31 3.13 拥抱变化 32 3.14 利用变化 32 3.15 更好的类比:不断演进的系统 34 3.16 小结 37 第4章 代码的演进:初级阶段 38 4.1 用对象结构来代替过程逻辑 38 4.2 面向对象和模式的起源 39 4.3 一个示例:简单条件和Proxy模式 40 4.4 下一步:多路径条件选择 43 4.5 为什么要采用对象结构 45 4.6 从多个条件中选择一个 46 4.7 小结 46 第5章 使用和发现模式 48 5.1 根据上下文进行设计:我做的另一个木匠活 48 5.2 模式引出了另一个看问题的角度 55 5.3 模式提供了一种讨论设计的语言 55 5.4 本书中的模式 56 5.5 小结 56 第6章 软件开发金字塔 58 6.1 构成专业的元素 58 6.2 一种形象的表示 60 6.3 小结 60 第7章 注重软件质量 61 7.1 封装 62 7.2 内聚 62 7.2.1 方法内聚 63 7.2.2 视角层的内聚 65 7.2.3 类内聚 66 7.2.4 内聚到何种程度才足够 67 7.3 耦合 67 7.3.1 有意耦合与意外耦合 68 7.3.2 耦合类型 69 7.4 冗余 73 7.5 可测试性 77 7.6 可读性 78 7.7 软件的病症 79 7.7.1 内聚性较差的信号 79 7.7.2 意外耦合或不合逻辑耦合的信号 80 7.7.3 冗余的信号 81 7.8 小结 81 第8章 注重原则和智慧结晶 83 8.1 使用与创建分离 83 8.1.1 Fowler的三层视角 83 8.1.2 另一种视角 84 8.1.3 使用的视角 85 8.1.4 一个单独的视角:创建 86 8.1.5 最后考虑构造细节 87 8.1.6 回到现实 88 8.2 开闭原则 89 8.2.1 类级的开闭原则 90 8.2.2 方法级的开闭原则 91 8.3 依赖倒置原则 92 8.4 GoF的建议 93 8.4.1 设计方法的接口 93 8.4.2 设计类的接口 94 8.4.3 GoF:优先使用对象聚合而非类继承 95 8.5 GoF:在设计中思考什么应该变化并封装会发生变化的概念 98 8.6 小结 100 第9章 注重实践 101 9.1 统一编码风格 101 9.1.1 注释 102 9.1.2 命名类、方法和变量 103 9.1.3 编码标准的好处 104 9.2 意图导向编程 105 9.3 封装构造函数 107 9.3.1 原则与实践 110 9.3.2 做出决定 110 9.4 公共性-可变性分析 111 9.5 实践与自由 114 9.6 小结 115 第10章 注重纪律:单元测试 116 10.1 测试的经济学 116 10.1.1 单元测试 117 10.1.2 先写测试 119 10.2 JUnit框架 120 10.2.1 JUnit基础知识 121 10.2.2 JUnit示例 122 10.2.3 Rule.java:先编码,再测试 122 10.2.4 RuleContainer.java:先测试,再编码 128 10.2.5 消除冗余:@Before和@After 135 10.2.6 自动化批量测试 137 10.2.7 异常和单元测试 139 10.3 模拟对象 141 10.3.1 MockObject框架 142 10.3.2 伪对象 145 10.3.3 依赖注入和Endo-Testing技巧 146 10.3.4 Endo-Testing 147 10.4 小结 148 第11章 注重纪律:重构 149 11.1 重构质量糟糕的代码 150 11.2 重构质量优秀的代码 151 11.3 结构变化与功能变化 152 11.4 重构可帮助你做出选择 153 11.5 模式可以成为重构的目标 154 11.6 避免重构:预构 154 11.7 重构技巧 155 11.8 重构遗留代码 162 11.9 小结 164 第12章 测试驱动开发 165 12.1 何谓测试驱动开发 165 12.1.1 测试驱动与先写测试 165 12.1.2 从单元测试的角度来设计 166 12.2 测试与质量 167 12.2.1 测试与内聚 167 12.2.2 测试与耦合 168 12.2.3 测试与冗余 169 12.3 测试驱动开发与模式 169 12.3.1 Strategy模式 169 12.3.2 乌龟站在乌龟上,一直向下 170 12.3.3 模拟对象/模拟乌龟 171 12.4 模拟对象 172 12.5 模拟乌龟 174 12.6 测试Decorator模式 174 12.7 小结 178 第13章 模式与因素 179 13.1 在演进的设计中做决策 179 13.2 Christopher Apexander与他所提出的“因素” 180 13.2.1 信号处理器示例 180 13.2.2 PKZip示例 184 13.2.3 测试与因素 186 13.3 更多选择,更多因素 187 13.4 小结 190 第14章 浮现式设计:案例分析 191 14.1 问题领域:MWave公司 191 14.2 团队 192 14.3 最简单的能够正常运作的设计 194 14.4 新需求:更复杂的机器 196 14.5 顺便介绍一下 198 14.6 更多好消息 199 14.7 小结:设计是一次漫长而奇特的旅行 200 第15章 结束语:展望2020年 202 附录A 演进路径 204 附录B 示例中用到的模式简介 213 附录C 有用幻觉之原理 274 参考书目 279
2023-01-28 10:15:26 23.86MB 软件工程 浮现式设计 软件开发 敏捷
1
本书基于2.6.22内核,对USB子系统的大部分源代码逐行进行分析,系统地阐释了Linux内核中USB子系统是如何运转的,子系统内部的各个模块之间是如何互相协作、配合的。本次改版修改了第1版中出现的错误,增加了一个附录,主要内容是关于Linux内核的学习方法,是作者的经验总结,值得一读。 本书使用幽默诙谐的笔调对Linux内核中的USB子系统源代码进行了分析,形象且详尽地介绍了USB在Linux中的实现。本书从U盘、Hub、USB Core到主机控制器覆盖了USB实现的方方面面,被一些网友誉为USB开发的“圣经”。 对于Linux初学者,可以通过本书掌握学习内核、浏览内核代码的方法;对于Linux驱动开发者,可以通过本书对设备模型有形象深刻的理解;对于USB开发者,可以通过本书全面理解USB在一个操作系统中的实现;对于Linux内核开发者,也可以通过本书学习到很多Linux高手开发和维护一个完整子系统时的编程思想。
2022-10-26 08:13:32 46.68MB Linux USB
1
JESD79-4C:DDR4 SDRAM Standard(DDR4标准)-最新完整版-带详细标签(265页) 全网带最详细书签版。。。完整英文电子版 JEDEC JESD79-4C ,带最详细书签。本文档定义了 DDR4 标准,包括特性、功能、交流和直流特性、封装和球/信号分配。 本规范的目的是为具有一个或两个通道的符合 JEDEC 标准的每通道 16 位 SDRAM 设备定义一组最低要求。 LPDDR4 双通道器件密度范围为 4 Gb 至 32 Gb,单通道密度范围为 2 Gb 至 16 Gb。 本文档使用以下标准创建:DDR2 (JESD79-2)、DDR3 (JESD79-3)、DDR4 (JESD79-4)、LPDDR (JESD209)、LPDDR2(JESD209-2) 和 LPDDR3 (JESD209-3) .
2022-10-18 14:09:20 8.05MB DDR4 SDRAM 嵌入式 JESD79
本书是《编程卓越之道》系列书的第二卷,将探讨怎样用高级语言(而非汇编语言)编程得到高效率机器代码。在书中,您可以学到如何分析编译器的输出,以便检验代码的所作所为,从而得到高质量的机器码;了解编译器为常见控制结构生成的典型机器指令,以便在编写高级语言程序时选用恰当的语句;掌握编译器将各种常量和变量类型转换成机器数据的方法,以便于使用这些数据写出又快又短的程序。 书中的理论超出了特定的编程语言和CPU架构,以各种处理器平台进行开发的高级语言程序员都能从中汲取到卓越编程的营养。 编程卓越之道 第二卷 目录 第1章 以底层语言思考,用高级语言编程 第2章 要不要学汇编语言 第3章 高级语言程序员应具备的80x86汇编知识 第4章 高级语言程序员应具备的PowerPC汇编知识 第5章 编译器的操作与代码生成 第6章 分析编译器输出的工具 第7章 常量与高级语言 第8章 变量 第9章 数组 第10章 字符串 第11章 指针 第12章 记录、联合和类 第13章 算术与逻辑表达式 第14章 控制结构与程序判定 第15章 迭代控制结构 第16章 函数与过程 软件工程学 附录 80x86和PowerPC处理器家族的概要对比 网上附录 索引
2022-10-12 17:12:54 12.35MB 编程卓越之道 编程 开发
1
这是一本C语言的权威参考手册,对C语言的基本概念和运行函数库提供了完整的描述,并强调了以正确性、可移性和可维护性为基本出发点的良好编程风格。本书是C语言的详尽参考手册,分为两部分:第一部分讨论了C语言的所有语言特征,包括词法、预处理机制、声明、类型、表达式、语句以及函数等基本语言特征;第二部分讨论了C语言的标准库,针对它们不同的功能分别进行详细介绍。为了帮助读者解相关概念,本书在讨论C语言及标准库的细节时,提供了许多实例和解释。第一部分的各章还提供了练习题和主要练习的解答,这些练习可帮助读者加深理解C语言的基本功能和特性。 本书可以作为高等院校计算机专业C语言课程的教材和参考书,也可供程序开发人员参考。 第一部分 C语言 1 第1章 概述 2 1.1 C语言的演变 2 1.1.1 传统C 2 1.1.2 标准C(1989) 2 1.1.3 标准C(1995) 3 1.1.4 标准C(1999) 3 1.1.5 标准C++ 4 1.1.6 本书内容 4 1.2 应该使用哪种C语言 4 1.3 C编程概述 5 1.4 一致性 6 1.5 语法约定 7 第2章 词法元素 8 2.1 字符集 8 2.1.1 执行字符集 9 2.1.2 空白字符和行终止符 9 2.1.3 字符编码 10 2.1.4 三字符组 10 2.1.5 多字节字符和宽字符 11 2.2 注释 13 2.3 标记 14 2.4 操作符和分隔符 15 2.5 标识符 15 2.6 关键字 17 2.7 常量 18 2.7.1 整数常量 18 2.7.2 浮点数常量 22 2.7.3 字符常量 23 2.7.4 字符串常量 25 2.7.5 转义字符 27 2.7.6 字符转义码 28 2.7.7 数值转义码 29 2.8 C++兼容性 29 2.8.1 字符集 30 2.8.2 注释 30 2.8.3 操作符 30 2.8.4 标识符和关键字 30 2.8.5 字符常量 30 2.9 关于字符集、指令集和编码 30 2.10 练习 32 第3章 C预处理器 34 3.1 预处理器命令 34 3.2 预处理器词法约定 35 3.3 定义和替换 36 3.3.1 类似对象的宏定义 36 3.3.2 定义带参数的宏 37 3.3.3 宏表达式的重新扫描 39 3.3.4 预定义的宏 40 3.3.5 取消宏定义和重新定义宏 42 3.3.6 宏展开的优先级错误 42 3.3.7 宏参数的副作用 43 3.3.8 把标记转换为字符串 43 3.3.9 宏展开中的标记合并 44 3.3.10 宏的可变参数列表 45 3.3.11 其他问题 46 3.4 文件包含 46 3.5 条件编译 48 3.5.1 #if、#else和#endif命令 48 3.5.2 #elif命令 49 3.5.3 #ifdef和#ifndef命令 50 3.5.4 条件命令中的常量表达式 51 3.5.5 defined操作符 52 3.6 显式的行号 52 3.7 pragma指令 53 3.7.1 标准pragma命令 53 3.7.2 标准pragma指令的位置 54 3.7.3 _Pragma操作符 54 3.8 错误指令 54 3.9 C++兼容性 55 3.10 练习 55 第4章 声明 57 4.1 声明的组织形式 57 4.2 术语 58 4.2.1 作用域 58 4.2.2 可见性 59 4.2.3 前向引用 59 4.2.4 名称的重载 60 4.2.5 重复声明 61 4.2.6 重复可见性 62 4.2.7 范围 62 4.2.8 初始值 63 4.2.9 外部名称 64 4.2.10 编译时名称 65 4.3 存储类别和函数指定符 65 4.3.1 默认存储类别指定符 66 4.3.2 存储类别指定符的例子 66 4.3.3 函数指定符 67 4.4 类型指定符和限定符 67 4.4.1 默认类型指定符 68 4.4.2 缺失的声明器 69 4.4.3 类型限定符 70 4.4.4 const 70 4.4.5 volatile和序列点 72 4.4.6 restrict 74 4.5 声明器 75 4.5.1 简单声明器 75 4.5.2 指针声明器 76 4.5.3 数组声明器 77 4.5.4 函数声明器 78 4.5.5 声明器的组合 80 4.6 初始化值 81 4.6.1 整数 82 4.6.2 浮点数 83 4.6.3 指针 83 4.6.4 数组 84 4.6.5 枚举 86 4.6.6 结构 86 4.6.7 联合 87 4.6.8 省略花括号 88 4.6.9 指定成员的初始化值 88 4.7 隐式声明 89 4.8 外部名称 90 4.8.1 初始化值模型 90 4.8.2 省略的存储类别模型 90 4.8.3 公共模型 90 4.8.4 混合公共模型 91 4.8.5 总结和建议 91 4.8.6 未引用的外部声明 92 4.9 C++兼容性 92 4.9.1 作用域 92 4.9.2 标签和typedef名称 92 4.9.3 用于类型的存储类别指定符 93 4.9.4 const类型限定符 93 4.9.5 初始化值 93 4.9.6 隐式声明 93 4.9.7 定义和引用声明 94 4.9.8 函数链接 94 4.9.9 无参函数 94 4.10 练习 94 第5章 类型 97 5.1 整数类型 98 5.1.1 有符号整数类型 98 5.1.2 无符号整数类型 101 5.1.3 字符类型 102 5.1.4 扩展整数类型 104 5.1.5 布尔类型 104 5.2 浮点类型 104 5.3 指针类型 108 5.3.1 通用指针 109 5.3.2 null指针和非法指针 109 5.3.3 使用指针的一些警告 110 5.4 数组类型 111 5.4.1 数组和指针 111 5.4.2 多维数组 112 5.4.3 数组边界 112 5.4.4 操作 113 5.4.5 可变长度的数组 113 5.5 枚举类型 115 5.6 结构类型 117 5.6.1 结构类型引用 119 5.6.2 结构上的操作 120 5.6.3 成员 120 5.6.4 结构成员的布局 122 5.6.5 位段 122 5.6.6 移植性问题 124 5.6.7 结构的大小 125 5.6.8 灵活数组成员 126 5.7 联合类型 127 5.7.1 联合成员的布局 127 5.7.2 联合的大小 128 5.7.3 使用联合类型 129 5.7.4 (其他)使用联合类型 130 5.8 函数类型 131 5.9 void类型 133 5.10 typedef名称 133 5.10.1 用于函数类型的typedef名称 135 5.10.2 重定义typedef名称 135 5.10.3 编译器的说明 136 5.11 类型兼容性 136 5.11.1 等价的类型 136 5.11.2 枚举兼容性 137 5.11.3 数组兼容性 138 5.11.4 函数兼容性 138 5.11.5 结构和联合兼容性 139 5.11.6 指针兼容性 139 5.11.7 源文件之间的兼容性 139 5.12 类型名称和抽象声明器 139 5.13 C++兼容性 141 5.13.1 枚举类型 141 5.13.2 typedef名称 141 5.13.3 类型兼容性 141 5.14 练习 141 第6章 转换和表示形式 144 6.1 表示形式 144 6.1.1 存储单位和数据长度 144 6.1.2 字节顺序 145 6.1.3 对齐限制 146 6.1.4 指针的长度 147 6.1.5 地址模型的效果 147 6.1.6 类型表示形式 149 6.2 转换 150 6.2.1 表示形式的变化 150 6.2.2 细微的转换 150 6.2.3 转换为整数类型 150 6.2.4 转换为浮点类型 152 6.2.5 转换为结构和联合类型 152 6.2.6 转换为枚举类型 152 6.2.7 转换为指针类型 152 6.2.8 转换为数组和函数类型 153 6.2.9 转换为void类型 153 6.3 寻常转换 154 6.3.1 类型转换 154 6.3.2 赋值转换 154 6.3.3 寻常单目转换 155 6.3.4 寻常双目转换 157 6.3.5 默认的函数实参转换 158 6.3.6 其他函数转换 159 6.4 C++兼容性 159 6.5 练习 159 第7章 表达式 161 7.1 对象、左值和指示符 161 7.2 表达式和优先级 162 7.2.1 操作符的优先级和结合性 162 7.2.2 溢出和其他算术异常 163 7.3 基本表达式 164 7.3.1 名称 164 7.3.2 字面值 165 7.3.3 带括号的表达式 165 7.4 后缀表达式 166 7.4.1 下标表达式 166 7.4.2 成员选择 168 7.4.3 函数调用 169 7.4.4 后缀增值和减值操作符 171 7.4.5 复合字面值 172 7.5 单目表达式 173 7.5.1 类型转换 174 7.5.2 sizeof操作符 174 7.5.3 单目负号和正号 176 7.5.4 逻辑反 176 7.5.5 位反 177 7.5.6 取地址操作符 177 7.5.7 间接访问 178 7.5.8 前缀增值和减值操作符 179 7.6 双目操作符表达式 180 7.6.1 乘除操作符 180 7.6.2 加减操作符 182 7.6.3 移位操作符 183 7.6.4 关系操作符 185 7.6.5 相等操作符 186 7.6.6 位操作符 188 7.6.7 整数集合的例子 189 7.7 逻辑操作符表达式 192 7.8 条件表达式 194 7.9 赋值表达式 195 7.9.1 简单赋值 196 7.9.2 复合赋值 197 7.10 线性表达式 197 7.11 常量表达式 198 7.11.1 预处理器常量表达式 199 7.11.2 整型常量表达式 200 7.11.3 初始化值常量表达式 200 7.12 求值的顺序 201 7.13 被丢弃的值 202 7.14 内存访问的优化 203 7.15 C++兼容性 204 7.16 练习 204 第8章 语句 206 8.1 语句的基本语法规则 206 8.2 表达式语句 207 8.3 标签语句 207 8.4 复合语句 208 8.5 条件语句 210 8.5.1 多路条件语句 210 8.5.2 悬疑的else问题 211 8.6 迭代式语句 212 8.6.1 while语句 212 8.6.2 do语句 213 8.6.3 for语句 214 8.6.4 使用for语句 215 8.6.5 多个控制变量 217 8.7 switch语句 218 8.8 break和continue语句 220 8.9 return语句 222 8.10 goto语句 223 8.11 空语句 224 8.12 C++兼容性 224 8.12.1 复合语句 224 8.12.2 循环中的声明 224 8.13 练习 225 第9章 函数 226 9.1 函数定义 226 9.2 函数原型 228 9.2.1 原型出现在什么时候 230 9.2.2 混合使用原型和非原型声明 230 9.2.3 合理地使用原型 231 9.2.4 原型和调用约定 231 9.2.5 标准C和传统C的兼容性 233 9.3 形式参数声明 233 9.4 形参类型的调整 235 9.5 参数传递约定 236 9.6 形参的一致 237 9.7 函数的返回类型 238 9.8 返回类型的一致 239 9.9 main函数 239 9.10 内联函数 240 9.11 C++兼容性 242 9.11.1 原型 242 9.11.2 形参和返回类型中的类型声明 242 9.11.3 返回类型的一致 242 9.11.4 main 242 9.11.5 内联 243 9.12 练习 243 第二部分 C函数库 245 第10章 函数库简介 246 10.1 标准C工具 246 10.2 C++兼容性 247 10.3 库头文件和名称 249 10.3.1 assert.h 249 10.3.2 complex.h 249 10.3.3 ctype.h 249 10.3.4 errno.h 249 10.3.5 fenv.h 249 10.3.6 float.h 250 10.3.7 inttypes.h 250 10.3.8 iso64.h 250 10.3.9 limits.h 250 10.3.10 locale.h 250 10.3.11 math.h 251 10.3.12 setjmp.h 252 10.3.13 signal.h 252 10.3.14 stdarg.h 252 10.3.15 stdbool.h 252 10.3.16 stddef.h 252 10.3.17 stdint.h 252 10.3.18 stdio.h 252 10.3.19 stdlib.h 253 10.3.20 string.h 253 10.3.21 tgmath.h 253 10.3.22 time.h 254 10.3.23 wchar.h 254 10.3.24 wctype.h 254 第11章 标准语言附加 255 11.1 NULL、ptrdiff_t、size_t、offsetof 255 11.2 EDOM、ERANGE、EILSEQ、errno、strerror、perror 256 11.3 bool、false、true 257 11.4 va_list、va_start、va_arg、va_end 258 11.5 标准C的操作符宏 261 第12章 字符处理 262 12.1 isalnum、isalpha、iscntrl、iswalnum、iswalpha、iswcntrl 262 12.2 iscsym、iscsymf 264 12.3 isdigit、isodigit、isxdigit、iswdigit、iswxdigit 264 12.4 isgraph、isprint、ispunct、iswgraph、iswprint、iswpunct 265 12.5 islower、isupper、iswlower、iswupper 266 12.6 isblank、isspace、iswhite、iswspace 266 12.7 toascii 267 12.8 toint 267 12.9 tolower、toupper、towlower、towupper 267 12.10 wctype_t、wctype、iswctype 268 12.11 wctrans_t、wctrans 269 第13章 字符串处理 270 13.1 strcat、strncat、wcscat、wcsncat 270 13.2 strcmp、strncmp、wcscmp、wcsncmp 271 13.3 strcpy、strncpy、wcscpy、cscncpy 272 13.4 strlen、wcslen 273 13.5 strchr、strrchr、wcschr、wcsrchr 273 13.6 strspn、strcspn、strpbrk、strrpbrk、wcsspn、wcscspn、wcspbrk 274 13.7 strstr、strtok、wcsstr、wcstok 275 13.8 strtod、strtof、strtold、strtol、strtoll、strtoul、strtoull 276 13.9 atof、atoi、atol、atoll 277 13.10 strcoll、strxfrm、wcscoll、wcsxfrm 277 第14章 内存函数 279 14.1 memchr、wmemchr 279 14.2 memcmp、wmemcmp 279 14.3 memcpy、memccpy、memmove、wmemcpy、wmemmove 280 14.4 memset、wmemset 281 第15章 输入/输出工具 282 15.1 FILE、EOF、wchar_t、WEOF 283 15.2 fopen、fclose、fflush、freopen、fwide 284 15.2.1 文件模式 285 15.2.2 文件的定向 286 15.3 setbuf、setvbuf 287 15.4 stdin、stdout、stderr 287 15.5 fseek、ftell、rewind、fgetpos、fsetpos 288 15.5.1 fseek和ftell 287 15.5.2 fgetpos和fsetpos 290 15.6 fgetc、fgetwc、getc、getwc、getchar、getwchar、ungetc、ungetwc 290 15.7 fgets、fgetws、gets 291 15.8 fscanf、fwscanf、scanf、wscanf、sscanf、swscanf 292 15.8.1 控制字符串 293 15.8.2 转换规范 293 15.9 fputc、fputwc、putc、putwc、putchar、putwchar 298 15.10 fputs、fputws、puts 299 15.11 fprintf、printf、sprintf、snprintf、fwprintf、wprintf、swprintf 299 15.11.1 输出格式 300 15.11.2 转换规范 301 15.11.3 转换标志 301 15.11.4 最小字段宽度 302 15.11.5 精度 303 15.11.6 长度规范 303 15.11.7 转换操作 304 15.12 v[x]printf、v[x]scanf 311 15.13 fread、fwrite 312 15.14 feof、ferror、clearerr 313 15.15 remove、rename 314 15.16 tmpfile、tmpnam、mktemp 314 第16章 基本工具 316 16.1 malloc、calloc、mlalloc、clalloc、free、cfree 316 16.2 rand、srand、RAND_MAX 318 16.3 atof、atoi、atol、atoll 319 16.4 strtod、strtof、strtold、strtol、strtoll、strtoul、strtoull 319 16.5 abort、atexit、exit、_Exit、EXIT_FAILURE、EXIT_SUCCESS 321 16.6 getenv 322 16.7 system 323 16.8 bsearch、qsort 323 16.9 abs、labs、llabs、div、ldiv、lldiv 325 16.10 mblen、mbtowc、wctomb 326 16.10.1 编码和转换状态 327 16.10.2 长度函数 327 16.10.3 转换为宽字符 327 16.10.4 宽字符转换为多字节字符 328 16.11 mbstowcs、wcstombs 328 16.11.1 转换为宽字符串 328 16.11.2 从宽字符串转换为多字节字符 329 第17章 数学函数 331 17.1 abs、lbas、llabs、div、ldiv、lldiv 331 17.2 fabs 332 17.3 ceil、floor、lrint、llrint、lround、llround、nearbyint、round、rint、trunc 332 17.4 fmod、remainder、remquo 333 17.5 frexp、ldexp、modf、scalbn 334 17.6 exp、exp2、expm1、ilogb、log、log10、log1p、log2、logb 334 17.7 cbrt、fma、hypot、pow、sqrt 335 17.8 rand、srand、RAND_MAX 336 17.9 cos、sin、tan、cosh、sinh、tanh 336 17.10 acos、asin、atan、atan2、acosh、asinh、atanh 337 17.11 fdim、fmax、fmin 338 17.12 类型通用的宏 338 17.13 erf、erfc、lgamma、tgamma 341 17.14 fpclassify、isfinite、isinf、isnan、isnormal、signbit 342 17.15 copysign、nan、nextafter、nexttoward 343 17.16 isgreater、isgreaterequal、isless、islessequal、islessgreater、isunordered 343 第18章 时间和日期函数 345 18.1 clock、clock_t、CLOCKS_PER_SEC、times 345 18.2 time、time_t 346 18.3 asctime、ctime 346 18.4 gmtime、localtime、mktime 347 18.5 difftime 348 18.6 strtime、wcsftime 349 第19章 控制函数 352 19.1 assert、NDEBUG 352 19.2 system、exec 352 19.3 exit、abort 353 19.4 setjmp、longjmp、jmp_buf 353 19.5 atexit 354 19.6 signal、raise、gsignal、ssignal、psignal 354 19.7 sleep、alarm 356 第20章 区域 357 20.1 setlocale 357 20.2 localeconv 358 第21章 扩展整数类型 361 21.1 基本规则 361 21.1.1 类型的种类 361 21.1.2 要么都定义,要么都不定义 361 21.1.3 MIN和MAX限制 361 21.1.4 PRI...和SCN...格式字符串宏 362 21.2 固定长度的整数类型 363 21.3 具有最小宽度的最小长度类型 364 21.4 具有最小宽度的快速类型 364 21.5 指针长度和最大长度整数类型 365 21.6 ptrdiff_t、size_t、wchar_t、wint_t和sig_atomic_t的范围 366 21.7 imaxabs、imaxdiv、imaxdiv_t 366 21.8 strtoimax、strtouimax 367 21.9 wcstoimax、wcstoumax 367 第22章 浮点环境 368 22.1 介绍 368 22.2 浮点环境 369 22.3 浮点异常 369 22.4 浮点四舍五入模式 370 22.5 浮点表达式收缩 371 第23章 复数运算 372 23.1 复数函数库约定 372 23.2 complex、_Complex_I、imaginary、_Imaginary_I、I 372 23.3 CX_LIMITED_RANGE 372 23.4 cacos、casin、catan、ccos、csin、ctan 373 23.5 cacosh、casinh、catanh、ccosh、csinh、ctanh 374 23.6 cexp、clog、cabs、cpow、csqrt 374 23.7 carg、cimag、creal、conj、cproj 375 第24章 宽字符和多字节字符工具 377 24.1 基本类型和宏 377 24.2 宽字符和多字节字符之间的转换 377 24.3 宽字符串和多字节字符串之间的转换 379 24.4 转换为算术类型 380 24.5 输入和输出函数 380 24.6 字符串函数 381 24.7 日期和时间转换 382 24.8 宽字符分类和映射函数 382 附录A ASCII字符集 383 附录B 语法 384 附录C 练习答案 396
2022-09-12 08:38:07 39.44MB C语言 参考手册
1
文件已上传到百度网盘,附件中是下载地址。真正免积分免费无水印完整版,绝不出现仅下载到部分章节,书中广告页要求QQ联系支付宝购买完整版的流氓行为! 欢迎免积分下载更多本人独有网上难寻觅的 高清IT电子书:http://download.csdn.net/user/sinophp123 人无我有,人有我优,人优我廉!我的版本是全网最清晰的独家制作版本,还不要资源分。 同样一本书,下我的就可以了! (美)kris hadlock(著) 姚军(译) 人民邮电出版社 9787115330857 2013-10-01
2022-08-15 17:36:21 1KB JavaScript Framework 可视化 框架
1
这本经典、畅销的数据结构教材详细介绍了数据抽象的基础知识,强调作为面向对象方法基础原理的规范和实施之间的区别。书中使用的软件工程原则和概念以及UML图便于增强学生的理解。 ◆ 详细介绍了数据抽象,强调规范和实现之间的区别 ◆ 广泛介绍了各种面向对象的编程技术 ◆ 重点是核心的数据结构,而不是非必要的C++语言语法 ◆ 说明了类和ADT在问题解决过程中的作用 ◆ 诠释了ADT的主要应用,如查找航班图、事件驱动的模拟和八皇后问题 ◆ 大部分章节中的例子都使用了标准模板库(STL) ◆ 介绍了递归 ◆ 附录中提供了基本的C++语法,以帮助学生从其他语言转换为C++ 第1章 数据抽象:墙 1 1.1 面向对象的概念 2 1.1.1 面向对象分析与设计 2 1.1.2 面向对象解决方案的特征 3 1.2 获得更好的解决方案 4 1.2.1 内聚 5 1.2.2 耦合 5 1.3 规范 6 1.3.1 操作契约 7 1.3.2 特殊情况 8 1.3.3 抽象 9 1.3.4 信息隐藏 10 1.3.5 最小且完整的接口 11 1.4 抽象数据类型 12 1.4.1 设计ADT 14 1.4.2 涉及其他ADT的ADT 17 1.5 ADT包 18 1.5.1 确定行为 18 1.5.2 指定数据和操作 19 1.5.3 ADT的模板接口 22 1.5.4 使用ADT包 24 C++片段1 C++类 29 C1.1 待解决的问题 30 C1.1.1 私有数据字段 31 C1.1.2 构造函数和析构函数 32 C1.1.3 方法 32 C1.1.4 防止编译错误 33 C1.2 实现解决方案 34 C1.3 模板 35 C1.4 继承 37 C1.4.1 基类和派生类 38 C1.4.2 重写基类方法 40 C1.5 虚方法和抽象类 42 C1.5.1 虚方法 42 C1.5.2 抽象类 43 第2章 递归:镜子 45 2.1 递归解决方案 46 2.2 返回值的递归 48 2.2.1 递归值函数:n的阶乘 49 2.2.2 箱式跟踪 52 2.3 执行动作的递归 55 2.4 递归与数组 62 2.4.1 逆置数组项 63 2.4.2 折半查找 64 2.4.3 查找数组中的最大值 68 2.4.4 查找数组中第k个最小值 69 2.5 组织数据 71 2.6 更多示例 75 2.6.1 Fibonacci数列(兔子繁殖) 75 2.6.2 组织游行队伍 78 2.6.3 从n个事物中选出k个 79 2.7 递归和效率 81 第3章 基于数组的实现 91 3.1 办法 92 3.1.1 核心方法 93 3.1.2 使用大小固定的数组 93 3.2 ADT包的基于数组的实现 94 3.2.1 头文件 95 3.2.2 定义核心方法 96 3.2.3 测试核心方法 98 3.2.4 实现更多方法 101 3.2.5 删除项的方法 103 3.2.6 测试 106 3.3 在实现中使用递归 107 3.3.1 getIndexOf方法 107 3.3.2 getFrequencyOf方法 108 C++片段2 指针、多态和内存分配 113 C2.1 变量的内存分配和方法的前期绑定 114 C2.2 需要解决的问题 115 C2.3 指针与程序的自由存储 116 C2.3.1 释放内存 118 C2.3.2 避免内存泄漏 119 C2.3.3 避免悬挂指针 122 C2.4 虚方法和多态 124 C2.5 数组的动态分配 126 第4章 基于链表的实现 129 4.1 预备知识 130 4.2 ADT包的基于链表的实现 133 4.2.1 头文件 134 4.2.2 定义核心方法 135 4.2.3 实现更多方法 138 4.3 在基于链表的实现中使用递归 143 4.4 测试多个ADT实现 145 4.5 比较基于数组的实现和基于链表的实现 148 第5章 作为问题求解技术的递归 155 5.1 定义语言 156 5.1.1 语法知识基础 156 5.1.2 两种简单的语言 158 5.2 代数表达式 160 5.2.1 代数表达式的类型 160 5.2.2 前缀表达式 162 5.2.3 后缀表达式 166 5.2.4 完全括号化表达式 168 5.3 回溯 168 5.3.1 查找航线 168 5.3.2 八皇后问题 173 5.4 递归和数学归纳法的关系 179 5.4.1 递归阶乘函数的正确性 179 5.4.2 Hanoi塔的工作量 180 第6章 栈 189 6.1 ADT栈 190 6.1.1 在设计解决方案期间开发ADT 190 6.1.2 ADT栈的规范 192 6.2 栈的简单应用 197 6.2.1 检查括号匹配 197 6.2.2 识别语言中的字符串 199 6.3 栈在代数表达式中的应用 200 6.3.1 计算后缀表达式 201 6.3.2 中缀表达式与后缀表达式的等价转换 202 6.4 使用栈查找航班图 205 6.5 栈和递归的关系 212 C++片段3 异常 221 C3.1 背景知识 222 C3.2 断言 223 C3.3 抛出异常 224 C3.4 处理异常 227 C3.4.1 多个catch块 228 C3.4.2 未捕获的异常 229 C3.5 程序员定义的异常类 232 第7章 实现ADT栈 235 7.1 基于数组的实现 236 7.2 基于链表的实现 239 7.3 在实现中使用异常 243 第8章 列表 247 8.1 指定ADT列表 248 8.2 使用列表操作 252 8.3 ADT列表的模板接口 255 第9章 实现列表 259 9.1 基于数组的ADT列表实现 260 9.1.1 头文件 261 9.1.2 实现文件 262 9.2 基于链表的ADT列表实现 266 9.2.1 头文件 266 9.2.2 实现文件 268 9.2.3 在LinkedList的方法中使用递归 275 9.3 两种实现的比较 279 第10章 算法的效率 283 10.1 什么是好的解决方案 284 10.2 测量算法的效率 285 10.2.1 算法的执行时间 286 10.2.2 算法增长率 287 10.2.3 分析与大O表示法 288 10.2.4 正确分析问题 291 10.2.5 查找算法的效率 293 第11章 排序算法及其效率 299 11.1 基本排序算法 300 11.1.1 选择排序 300 11.1.2 起泡排序 303 11.1.3 插入排序 305 11.2 较快排序算法 307 11.2.1 归并排序 307 11.2.2 快速排序 312 11.2.3 基数排序 319 11.3 各种排序算法的比较 321 C++片段4 类关系和重用 325 C4.1 回顾继承 326 C4.1.1 类的公有、私有和受保护部分 331 C4.1.2 公有、私有和受保护继承 332 C4.1.3 is-a和as-a关系 333 C4.2 包含:has-a关系 334 C4.3 回顾抽象基类 335 第12章 有序表及其实现 339 12.1 指定ADT有序表 340 12.1.1 ADT有序表的模板接口 342 12.1.2 使用有序表的操作 343 12.2 基于链表的实现 344 12.2.1 头文件 344 12.2.2 实现文件 345 12.2.3 基于链表的实现的效率 348 12.3 使用ADT列表的实现 348 12.3.1 包含 349 12.3.2 公有继承 352 12.3.3 私有继承 356 第13章 队列和优先队列 363 13.1 ADT队列 364 13.2 ADT队列的简单应用 367 13.2.1 读取字符串 367 13.2.2 识别回文 368 13.3 ADT优先队列 369 13.4 应用:模拟 371 13.5 面向位置和面向值的ADT 379 第14章 队列和优先队列的实现 387 14.1 ADT队列的实现 388 14.1.1 使用ADT列表的实现 388 14.1.2 基于链表的实现 390 14.1.3 基于数组的实现 394 14.1.4 比较实现 399 14.2 ADT优先队列的实现 400 C++片段5 运算符重载和友元访问 405 C5.1 重载运算符 406 C5.1.1 重载=进行赋值 408 C5.1.2 重载+进行连接 410 C5.2 友元访问和<<的重载 411 第15章 树 415 15.1 术语 416 15.1.1 树的类型 417 15.1.2 树的高度 419 15.1.3 满二叉树、完全二叉树和平衡二叉树 421 15.1.4 二叉树的最大和最小高度 422 15.2 ADT二叉树 425 15.2.1 二叉树的遍历 425 15.2.2 二叉树的操作 428 15.2.3 ADT二叉树的模板接口 430 15.3 ADT二叉查找树 432 15.3.1 二叉查找树的操作 433 15.3.2 查找二叉查找树 434 15.3.3 创建二叉查找树 435 15.3.4 遍历二叉查找树 437 15.3.5 二叉查找树操作的效率 437 第16章 树的实现 443 16.1 二叉树中的节点 444 16.1.1 基于数组的表示 444 16.1.2 基于链表的表示 446 16.2 ADT二叉树基于链表的实现 447 16.2.1 头文件 447 16.2.2 实现 450 16.3 ADT二叉查找树基于链表的实现 458 16.3.1 ADT二叉查找树操作的算法 458 16.3.2 BinarySearchTree类 469 16.4 在文件中保存二叉查找树 471 16.5 树排序 474 16.6 一般树 474 C++片段6 迭代器 479 C6.1 迭代器 480 C6.1.1 常见的迭代器操作 481 C6.1.2 使用迭代器操作 482 C6.1.3 实现迭代器 483 C6.2 迭代器的高级功能 485 第17章 堆 489 17.1 ADT堆 490 17.2 堆的基于数组的实现 493 17.2.1 基于数组的堆操作的算法 494 17.2.2 实现 498 17.3 ADT优先队列的堆实现 502 17.4 堆排序 504 第18章 字典及其实现 511 18.1 ADT字典 512 18.2 可能的实现 517 18.2.1 ADT字典的基于数组的有序实现 519 18.2.2 ADT字典的二叉查找树实现 521 18.3 选择实现 523 18.4 散列 529 18.4.1 散列函数 532 18.4.2 解决冲突 534 18.4.3 散列的效率 539 18.4.4 如何确立散列函数 542 18.4.5 字典遍历:散列的低效操作 543 18.4.6 使用散列和分离链实现ADT字典 544 第19章 平衡查找树 551 19.1 平衡查找树 552 19.2 2-3树 553 19.2.1 遍历2-3树 555 19.2.2 查找2-3树 556 19.2.3 在2-3树中插入数据 558 19.2.4 从2-3树中删除数据 562 19.3 2-3-4树 567 19.3.1 查找和遍历2-3-4树 569 19.3.2 在2-3-4树中插入数据 569 19.3.3 从2-3-4树中删除数据 572 19.4 红-黑树 573 19.4.1 查找和遍历红-黑树 575 19.4.2 红-黑树的插入和删除 575 19.5 AVL树 577 第20章 图 583 20.1 术语 584 20.2 将图作为ADT 587 20.3 图的遍历 591 20.3.1 深度优先查找 592 20.3.2 广度优先查找 593 20.4 图的应用 595 20.4.1 拓扑排序 595 20.4.2 生成树 598 20.4.3 最小生成树 600 20.4.4 最短路径 603 20.4.5 回路 606 20.4.6 一些复杂问题 608 第21章 外部存储中的数据处理 615 21.1 了解外部存储 616 21.2 排序外部文件的数据 618 21.3 外部字典 624 21.3.1 确定外部文件的索引 626 21.3.2 外部散列 629 21.3.3 B-树 632 21.3.4 遍历 639 21.3.5 多索引 640 C++片段7 标准模板库 647 C7.1 STL容器 648 C7.1.1 STL容器适配器 649 C7.1.2 顺序容器 650 C7.1.3 关联容器 654 C7.2 STL算法 657 附录A 回顾C++基础 659 附录B 编程中的重要主题 697 附录C 统一建模语言 719 附录D 软件生命周期 727 附录E 数学归纳法 733 附录F 算法验证 737 附录G C++文件基础 741 附录H C++头文件和标准函数 751 附录I C++文档系统 755 附录J ASCII字符代码 757 附录K 针对Java编程人员的C++知识 759 附录L 针对Python编程人员的C++知识 767
2022-04-26 15:48:52 147.19MB C++ 面向对象 架构 算法
1