下载 >  数据库 >  Oracle > 大话OracleRac 高清目录版

大话OracleRac 高清目录版

讲ORACLE RAC最好的书籍之一,非常推荐,我自己学到很多东西在里面。
2018-04-16 上传大小:69.73MB
想读
分享
收藏 举报
大话Oracle RAC 完整版(一)

因为上传文件大小限制,先将整本书分为11个部分(均已上传),请注意下载!如果哪个无法打开,请留言! 下载完成之后请用超星阅读! 大话OracleRAC RAC入门指导 第一章,RAC初体验 第二章,什么是RAC集群 第三章,ORACLE CLUSTERWARE 第四章,RAC原理 第五章,ASM初步 第六章,RAC维护工具 第七章,HB和LB 第八章,备份 第九章,恢复 第十章,其他恢复技术 第十一章,RAC和DG 第十二章,RAC和STREAM REPLICATION 第十三章,深入ASM 第十四章,性能与RAC

立即下载
大话Oracle.RAC:集群、高可用性、备份与恢复(第2版)

学习oracle集群必备书籍,必须要了解的知识,很收益。

立即下载
大话Oracle RAC:集群、高可用性、备份与恢复--详细书签版

CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 大话Oracle RAC:集群、高可用性、备份与恢复 基本信息 作者: 张晓明 丛书名: IT名人堂 出版社:人民邮电出版社 ISBN:9787115204158 上架时间:2009-3-26 出版日期:2009 年4月 开本:16开 页码:473 版次:1-1 编辑推荐    以Oracle 10g为基础,对Oracle RAC进行了全面的介绍和分析。    按照“发现问题→解决问题→实践与理论相结合”的方式进行介绍    首先对现实问题进行分析,然后提供合适的解决方案,最后自然地引出Oracle中的理论知识点. 内容简介    本书以oracle 10g为基础,对oracle rac进行了全面的介绍和分析。全书分为两个部分,共14章,第一部分是集群理论篇,这部分从集群基础知识入手,通过分析集群环境和单机环境的不同,介绍了集群环境的各个组件及其作用,以及集群环境的一些专有技术,包括oracle clusterware、oracle database、asm、cache fusion等。第二部分是实践篇,每一章都针对rac的一个知识点展开讲解,包括oracle clusterware的维护、ha与lb、备份、恢复、flashback家族、rac和data guard的结合使用、rac和stream的结合使用,最后对asm进行深入介绍,并给出性能调整的指导思想。.    本书按照“发现问题→解决问题→实践与理论相结合”的方式进行介绍,首先对现实问题进行分析,然后提供合适的解决方案,最后自然地引出oracle中的理论知识点,这种讲解方法能够有效地降低阅读难度,帮助读者更好地掌握相关技能。..    本书可以作为数据库开发人员、数据库管理员、数据库初学者及其他数据库从业人员的工作参考手册,也可以作为大中专院校相关专业师生的参考用书和相关培训机构的培训教材。 作译者   张晓明,Oracle OCP,现用网名“石头狗”,名称来自于《和佛陀赏花去》中的故事;狗会因为人随手丢出的一个东西而追逐,可能是一个骨头、一块肉、一个眼神,甚至是一个石头,警示一定要看清自己在追逐的东西。 目录 封面 -14 封底 474 扉页 -13 版权 -12 序 -11 前言 -9 目录 -4 第1部分 集群理论篇 1 第1章 RAC初体验 2 1.1 本书使用环境 3 1.1.1 硬件环境 3 1.1.2 软件环境 4 1.1.3 本书使用的环境 6 1.2 如何在PC机上搭建RAC环境 8 1.2.1 需要下载的软件 8 1.2.2 安装过程 9 1.3 任务列表 28 1.4 规划阶段 28 1.4.1 确认主机名和3个IP地址 29 1.4.2 存储方案选型 29 1.5 实施阶段 30 1.5.1 主机配置 31 1.5.2 安装Oracle Clusterware 40 1.5.3 安装Oracle Database 51 1.5.4 配置Listener 55 1.5.5 创建ASM 59 1.5.6 创建数据库 63 1.6 客户端测试 71 1.6.1 客户端配置 71 1.6.2 体验Failover 72 1.6.3 体验LoadBalance 73 1.6.4 修改归档模式 74 第2章 什么是RAC集群 76 2.1 集群分类 76 2.2 集群环境的特殊问题 76 2.2.1 并发控制 77 2.2.2 健忘症(Amnesia) 77 2.2.3 脑裂(Split Brain) 77 2.2.4 IO隔离(IO Fencing) 78 2.3 RAC集群 78 2.3.1 存储层 79 2.3.2 网络层 79 2.3.3 集群件层 80 2.3.4 应用层 81 2.4 小结 81 第3章 Oracle Clusterware 82 3.1 Clusterware和RAC的关系 82 3.2 Oracle Clusterware组成 83 3.2.1 磁盘文件 83 3.2.2 Clusterware后台进程 89 3.2.3 网络组件 91 3.3 Clusterware的日志体系 95 3.4 小结 95 第4章 RAC原理 96 4.1 数据库基本原理 96 4.1.1 并发访问和数据一致性 97 4.1.2 事务和隔离级别 98 4.1.3 Oracle支持的隔离级别 99 4.2 Oracle单实例的并发控制机制 100 4.2.1 Lock 100 4.2.2 数据记录的行级锁 101 4.2.3 Latch 105 4.2.4 Latch和Lock对比 106 4.2.5 进一步理解 106 4.3 RAC下的并发控制 109 4.3.1 DLM中资源和锁 110 4.3.2 Non-Cache Fusion资源 111 4.3.3 Cache Fusion资源 112 4.3.4 GRD(Global Resource Directory) 114 4.3.5 PCM Lock 114 4.3.6 Cache Fusion 116 4.3.7 RAC并发控制总结 121 4.4 RAC架构 121 4.4.1 SGA的变化 122 4.4.2 后台进程的变化 122 4.4.3 文件 124 4.4.4 SCN 126 4.4.5 Cache Fusion、GCS、GES 127 4.5 RAC和Clusterware的交互 127 4.5.1 Clusterware层 128 4.5.2 RAC层 129 4.6 小结 132 第5章 存储方案——ASM初步 133 5.1 Shared-Disk和Shared-Nothing架构 133 5.2 Oracle 10g RAC的存储方案介绍 134 5.3 ASM架构 134 5.3.1 ASM实例 135 5.3.2 文件 136 5.4 配置ASM 136 5.4.1 安装位置 136 5.4.2 创建ASM磁盘 136 5.4.3 配置ASM实例 144 5.4.4 创建磁盘组 146 5.4.5 在数据库中使用ASM的磁盘组 147 5.5 ASM实例:将数据库迁移到ASM 147 5.5.1 试验说明 147 5.5.2 操作步骤 148 5.5.3 最后验证 155 5.6 小结 156 第2部分 实战篇 157 第6章 RAC维护工具集 158 6.1 Oracle Clusterware工具集 158 6.2 节点层 158 6.3 网络层 159 6.4 集群层 161 6.4.1 crsctl 162 6.4.2 OCR命令系列 167 6.5 应用层 176 6.5.1 crs_stat 176 6.5.2 onsctl 180 6.5.3 srvctl 186 6.5.4 恢复 192 6.6 小结 196 第7章 HA和LB 197 7.1 什么是高可用性 197 7.2 Failover 198 7.2.1 Client-Side Connect Time Failover 198 7.2.2 TAF(Transparent Application Failover) 198 7.2.3 Client-Side Failover和TAF的对照试验 199 7.2.4 Server-Side TAF 202 7.3 Oracle Clusterware HA框架 210 7.3.1 术语介绍 210 7.3.2 配置命令 213 7.3.3 完整实例 219 7.4 LoadBalance 223 7.4.1 Connection Balancing 223 7.4.2 利用Service分散负载 227 7.5 测试LoadBalance 228 7.5.1 通过Listener日志区分路由来源 228 7.5.2 测试方法 229 7.5.3 测试过程 230 7.6 小结 234 第8章 备份 235 8.1 概述 235 8.1.1 备份 235 8.1.2 恢复 236 8.1.3 RMAN工具 238 8.2 使用Flash Recovery Area 238 8.2.1 配置Flash Recovery Area 239 8.2.2 Flash Recovery Area的空间监控 239 8.3 使用RMAN 240 8.3.1 RMAN工具的使用方法 240 8.3.2 RMAN配置 242 8.4 完全备份和增量备份 248 8.4.1 完全备份 249 8.4.2 增量备份 251 8.4.3 其他RMAN命令 254 8.5 RAC的备份实例 261 8.6 小结 264 第9章 恢复 265 9.1 为什么Oracle数据库能够恢复 265 9.2 日志 267 9.2.1 日志线程(Redo Thread) 268 9.2.2 RAC的联机日志 268 9.3 恢复种类 269 9.3.1 Instance Recovery 269 9.3.2 Media Recovery 269 9.3.3 Crash Recovery 269 9.3.4 Online Block Recovery 274 9.4 介质恢复 274 9.4.1 完全恢复 275 9.4.2 不完全恢复 280 9.4.3 恢复到单实例 294 9.5 小结 302 第10章 其他恢复技术 303 10.1 数据块恢复 303 10.2 如何检查数据块一致性 304 10.2.1 使用初始化参数 304 10.2.2 DBV工具 305 10.2.3 Analyze命令 307 10.2.4 RMAN工具 307 10.2.5 dbms_repair包 308 10.3 模拟数据块不一致 309 10.4 数据块不一致处理办法 313 10.4.1 收集信息 313 10.4.2 设计恢复方法 314 10.4.3 恢复操作 316 10.5 数据块恢复实例 317 10.6 Flashback家族介绍 326 10.7 Flashback Database 326 10.7.1 Flashback Database架构 326 10.7.2 启用Flashback Database 327 10.7.3 Flashback Database 329 10.7.4 命令和视图 332 10.8 Flashback Drop 333 10.8.1 Tablespace Recycle Bin 333 10.8.2 Flashback Drop操作 335 10.8.3 Recycly Bin的维护 336 10.9 Flashback Query 和Flashback Table 337 10.9.1 Oracle 9i的Flashback Query 337 10.9.2 Flashback Version Query 339 10.9.3 Flashback Transaction Query 354 10.9.4 Flashback Table 356 10.9.5 UNDO Retntion 359 10.10 小结 360 第11章 RAC和Data Guard 361 11.1 Data Guard介绍 361 11.1.1 Data Guard架构 362 11.1.2 日志发送(Redo Send) 362 11.1.3 日志接收(Redo Receive) 365 11.1.4 日志应用(Redo Apply) 367 11.1.5 数据保护模式 367 11.1.6 自动裂隙检测和解决 368 11.2 RAC和Standby配置实例 369 11.2.1 RAC Primary和Single Standby 370 11.2.2 RAC Primary和RAC Standby 381 11.3 小结 394 第12章 RAC和Stream Replication 395 12.1 Stream的工作原理 395 12.2 Data Guard和Stream对比 396 12.3 RAC Stream配置实例 397 12.3.1 Single(Source)和RAC(Target) 398 12.3.2 RAC对RAC的复制 404 12.3.3 STRMMON工具 425 12.4 小结 427 第13章 深入ASM 428 13.1 非ASM的存储结构 428 13.2 ASM存储结构 429 13.3 ASM文件系统 430 13.3.1 ASM Metadata 431 13.3.2 Physical Metadata 431 13.3.3 Virtual Metadata 433 13.3.4 Disk Recovery 434 13.4 条带化(ASM Striping) 435 13.4.1 ASM文件模板(ASM File Template) 435 13.4.2 ASM别名(ASM File Alias) 436 13.5 RDBMS和ASM之间的交互 445 13.6 ASM的实例恢复 446 13.7 ASM和OS Filesystem之间交互 447 13.7.1 dbms_file_transfer包 447 13.7.2 RMAN的CONVERT方法 453 13.7.3 ASM和TTS 453 13.8 ASM的限制 456 13.9 小结 457 第14章 性能与RAC 458 14.1 RAC的若干特点 459 14.2 AWR 461 14.2.1 启用AWR 462 14.2.2 修改AWR配置 462 14.2.3 产生AWR报告 462 14.3 ASH 464 14.4 SQL调整策略 466 14.4.1 SQL语句的执行过程 466 14.4.2 SQL性能调整的基本方法 467 14.4.3 PL/SQL和SQL 471 14.5 小结 473 前言   从2008年2月开始动笔到定稿出版,这本书的编写几乎花费了我10个月的时间,大大超出了最初3个月的计划。这个过程虽然不能说寝食难安,但其中的酸甜苦辣也是如人饮水,冷暖自知,如果一开始就知道要投入这么大精力,我真怀疑自己是否有勇气开始动笔。.   回顾自己学习RAC的经历,我对它又爱又恨。因为对技术本身的痴迷加上高“薪”技术的诱惑,所以爱;因为没有能力掌控,所以恨。时至今日,我仍然不敢说自己已完全掌握了RAC,RAC的学习过程是对我所有学习过的IT技术的大复习,包括OS、Network、Storage、Database等,甚至可能还有很多领域我从未涉足。   相信很多对Oracle有一定经验的DBA和我有同样的感觉,RAC比普通的Oracle更难入门。不仅因为比比皆是的晦涩艰深的术语,也不仅因为它覆盖的技术领域太广,更主要的是可用的参考资料太少。我翻遍了所有能够获得的书籍资料,但是这些资料都是从很基本、很琐碎的细节开始,从下到上(Bottom-Up)的学习方式是虽然看到了“树”,但是看不到“林”。虽然无树不成林,技术细节总是必要的,但过于琐碎的分解给我造成更大的迷惑,到底RAC的总线是什么?GCS、GES、GRD、PCM这些东西是如何堆砌在一起的?   这段痛苦经历促使我决定以自己的方式讲述RAC的故事,如果大家能在这个旅程中豁然开朗,对我而言将是一件很有趣又备感欣慰的事。   本书特点   本书最大的特点是侧重于理论讲述和实战演练,尤其是对理论的剖析有一定的深度,并通过大量完整的案例来论证这些理论。DBA和开发人员特点不同,对于开发人员来说,从某种角度上,强调创造力决定高度。但是DBA要求的是稳定压倒一切,DBA必须去适应自己所使用的产品,而不能期待产品去适应自己,更没有机会去改变产品,因此了解这个产品的工作原理是非常必要的。   现在网络发达,遇到问题时,有论坛、BBS各种渠道可以利用。相信大家都有类似这样的体会:“哇,这家伙怎么能想到这样做?怎么敢这样做?”。其实这些高手的所谓“特技”都不是偶然,也不是贸然下手,只是他对产品有比你更深刻的认识,知道问题的前因,知道行动的后果,所以看起来他可以“天马行空、为所欲为”,而你只能“亦步亦趋、如履薄冰”。因此,我个人更强调对基础的掌握,而不要迷信有什么技巧或捷径。请相信只要能在一个领域持续上数年,你就在这个领域里能成为专家。   采用这种方式还有一个原因,RAC覆盖知识面广、资料难觅也是众所周知的。时至今日,我不敢妄谈精通,只是尽可能地把所知中规中矩地记录下来,不敢随意发挥,希望能够抛砖引玉,并对大家有所启发和帮助。   本书适用读者   大话Oracle RAC,书如其名,本书不是一本Oracle数据库的基础入门书籍,而是关于Orace RAC的入门指导。   这本书适合于初、中级数据库管理员和数据库开发人员,但是本书不会特别讲述什么是SGA,什么是数据文件,什么是字典视图,什么是日志,也不会专门介绍如何创建表空间、用户等。如果你对上面这些名词、操作都非常陌生,那么这本书不适合你,请先夯实单实例的基础(可以参考下面的“学习资源推荐”)再来看这本书。   本书假定读者已经脱离了入门阶段。如果你对Oracle单实例数据库有一定基础,并做过类似DBA工作,但是由于条件所限,一直对RAC敬仰如滔滔江水,渴望拥有却不知如何下手,那么这本书就非常适合你。如果你需要在最短时间内充电RAC相关知识,并且敢在简历上写下“有一定RAC经验”,那么这本书就是为你而准备的。   可能你已经有了一定的Oracle使用经验,比如做过些安装、管理、备份操作,对Oracle数据库有了一定感性认识,但是并没有完整的理论框架,那是最好的,你可以通过这本书学习到Oracle最核心的理论基础,并看到这些理论在单实例和RAC环境下的各种应用,不过还是建议你找一本基础入门的书籍放在手边,方便速查。   学习资源推荐   http://www.oracle.com/pls/db102/portal.all books,Orace 10.2官方文档,最权威的文档,适合系统学习。   http://www.oracle.com/technology/index.html,OTN,资料新、覆盖面广,尤其适合快速入门、图文并茂;缺点是分类方式不太适合中国用户的习惯。   https://metalink.oracle.com,Metalink,各种深度的文档一应俱全,也是所有补丁的发源地,不过用户需要申请账号。   http://www.itpub.net,这是很多Oracle DBA开始成长的地方。   http://www.eygle.com,这是Eygle的个人网站,Eygle(Oracle ACE Director)是国内Oracle数据库领域中的知名资深人士。   http://asktom.oracle.com,大名鼎鼎的AskTom。 .  http://www.databasejournal.com和http://www.oracle-base.com这两个站点程度类似,经常会有针对某专题的系列文章,适合初学者。   本书结构与内容   本书共14章,分为集群理论篇、实战篇两大部分。   工欲善其事,必先利其器,学习RAC,环境是最重要的。所以第1章“RAC初体验”将引导读者在一台PC机上搭建出一个2节点的RAC环境,并在建好之后快速感受RAC两大亮点——负载均衡、高可用性。这一章内容虽然是介绍安装,但并不是简单的单击“上一步”、“下一步”按钮,其间渗透了许多作者的体会和心得,所以即使有安装经验的读者,也无妨做一次快速翻阅,相信也会有所收获。   从第2章至第5章主要是基础理论介绍,第2章首先概述了集群的概念、分类,并在其基础上对RAC架构做一个快速浏览。接下来的3章,每一章都讨论了RAC的一个组件。   如果对RAC环境做一个解剖,可以发现集群软件架构可以分为3个组件:Clusterware Manager(集群件)、Distribute Lock Management(DLM,分布式锁管理器)、Oracle实例。这3个组件在Oracle的发展历史各不相同。Oracle在版本9之前一直是依赖厂商的集群件产品,比如Sun的Clusterware。直到Oracle 9才开始提供自己的集群件产品Cluster Manager,但是只支持部分平台。到了版本10,这个产品已经演变成一个功能完整、支持所有平台的独立产品Oracle Clusterware,这个产品不仅支持RAC,而且还能为其他非Oracle软件提供高可用支持。第3章专门介绍Oracle Clusterware。而第7章会演示如何利用这个产品搭建一个Web集群。   无论Oracle还是IBM、微软的数据库产品,无论单实例数据库还是集群数据库,它们核心功能都是一样的——事务处理,并在保证数据完整的前提下提供最大的并发支持。大家都知道,数据库系统是通过“锁机制”来实现的,而在集群环境下,使用的是“分布式锁机制”。其实不仅仅是数据库,所有支持多用户并发的系统都需要某种“锁机制”,因此无论“锁”还是“分布式锁”都不是Oracle所特有的,它是所有这些系统的共性。..   Oracle单实例的锁机制包括两种:Lock和Latch,Oracle RAC同样也离不开这两种锁机制,但是Oracle RAC又多了一种新的锁——分布式锁,这种锁的管理机制叫作分布式锁管理器(DistributedLockManager,DLM)。Oracle集群最初使用的是操作系统的DLM,但是操作系统的DLM仅适用于数量很少的资源的分布式管理,比如对文件,对于Oracle数据库动辄G级的数据量,这种DLM就非常不适合。所以Oracle开发了自己的DLM机制,在RAC之前的OPS中,这种技术叫作PCM(Parellel Cache Management),到了RAC,这个技术改名为Cache Fusion。可以说,RAC的学习、管理、优化都是围绕着Cache Fusion进行的。不过与Clusterware不同,Oracle并没有把DLM独立为一个产品,而是把DLM功能集成到数据库内核中,如果安装过程中检测到Clusterware的存在,就会激活内核的DLM功能。   第4章围绕着“锁”在单实例和RAC的使用,详细讲述了RAC原理。这一章是全书最重要的部分,也是作者花费心血最多的章节,希望读者详细研读。   以“锁”为总线来学习RAC,这个灵感来自于我在雅虎工作期间主持的一次内部培训,也正是这个灵感造就了本书。   当时雅虎的一个系统要从SQL Server转移到Oracle,大家希望能对SQL Server和Oracle的区别有所了解,于是我就主持了一次内部培训。当时对培训主题的选择是煞费苦心,如果从两个产品的媒体发布数据、销售数量做比较,对于技术人员显然没有任何意义;如果单从产品功能、用户友好性来比较,也没有任何说服力。在否定了若干方案后,我开始思考“数据库最本质的功能是什么?”,思索的结果就是最终选定“并发和锁”作为比较的主题。通过介绍两种产品的“锁机制”是如何实现的,以及各自的实现方法对并发能力的影响,从而达到比较的目的。这个讲义(PPT格式)可以在我的Blog(http://space.itpub.net/75321)找到。需要说明的是,这个讲义是以Oracle 9i和SQL Server 2000为基础,其中关于Oracle 9i的部分对Oracle 10g仍然有效,但是SQL Server 2000部分对其他版本是否适用,就需要根据具体情况来定。   这次内部培训之后,借助这个灵感,我对RAC知识重新梳理,终于找到了学习RAC最有效的方法(至少我个人这样认为),也最终产生这本书。   第5章带领读者认识ASM,这是Oracle 10推出的自动存储管理系统,这个系统同时综合了集群文件系统和卷管理器两方面功能,也是Oracle 10 RAC的首选存储方案。   本书的第6章到第12章是实战部分,每一章都是一个独立的讨论主题。   Oracle 10g中的管理工具被大大加强,提供了基于Web界面的管理方式。这些工具虽然简单好用,但对于初学者来说恰恰也是缺点,首先这些工具隐藏了背后的运作机制,其次对于这些工具本身的学习也会分散读者的精力,何况在某些现场根本没有图形界面可以使用。所以,我更推荐读者在学习阶段还是使用“笨”方法:手工输入命令+观察输出结果。在有一定的经验以后,再去使用各种图形工具,更何况Oracle中需要记忆的命令数量也是非常有限的,差不多一章的内容就可以全部覆盖。   因此,第6章把RAC环境中可能用到的命令进行整理,并按照一种便于记忆的方式进行归类。但这一章并不是命令手册,很多命令会有些较深入的分析。当然在以后的章节学习中,读者可能还会需要反复查阅这一章。   第7章介绍RAC最主要的亮点“HA和LB”,第8章介绍RAC的备份,第9章介绍恢复技术中的完全恢复、不完全恢复,第10章介绍其他恢复技术,包括数据块恢复、Flashback功能家族介绍。   Oracle的高可用家族除了RAC还有两个兄弟:Data Guard和Stream Replication,相对于RAC,这两种方案都比较容易上手,也是目前企业常用的HA方案。但是简单好学并不是代表功能会打折扣。这三兄弟每个既能独当一面,也可以互相配合使用,提供更强大的功能。但是,这三个兄弟针对的问题并不一样,适用场合也不尽相同。因此学习Oracle的高可用方案时,必须搞清楚这些方案的区别,最贵的并不一定是最适合的。因此,第11章比较了RAC和Data Guard的区别,以及二者如何搭配使用。第12章解释了RAC和Stream Replication的区别和合作。   第13章是对ASM的深度介绍,其中ASM Alias部分很重要,对于用户可能遇到的问题给出了具体的解决办法。   第14章主要介绍了调优方面的内容,但只介绍了SQL调整策略以及RAC环境下要考虑的特殊内容。之所以只选择这些内容,是因为Oracle性能调整是一个非常大的主题,经典话题包括主机、内存、网络调整,SQL语句调整、等待事件调整等,新话题可以讨论Oracle 10g新添的若干工具AWR、ASH、ADDM等。如果在一章中把这些内容都一网打尽,只能是蜻蜓点水、点到为止,与其这样不痛不痒地堆砌,还不如有针对性地深入讨论几个重点。需要更多了解性能优化内容的读者,可以参考其他资料和文档。   本书声明   (1)除了特别声明外,本书实例中使用的操作系统是Red Hat AS 4.0 Update 4,使用的数据库是Oracle 10 R2版。   (2)部分工具软件的下载地址。   Oracle Database、Oracle Clusterware、ASM Lib驱动   http://www.oracle.com/technology/global/cn/software/index.html   Red Hat Advanced Server   https://www.redhat.com/apps/download   (3)作者在编写本书过程中,以“够用就好”为原则,尽量覆盖到RAC所有知识点。但所有观点都出自作者的个人见解,疏漏、错误之处在所难免,欢迎大家指正。读者如果有好的建议或者学习本书过程中遇到问题,欢迎到作者的博客(http://space.itpub.net/75321)留言进行探讨,或者发送邮件到mingyan926@hotmail.com,希望能够与大家一起交流和进步。   感谢   在此,感谢芮玉奎先生,他在内容结构的编排方面给我很多帮助,感谢eygle,正是他的推荐,才促成我与人民邮电出版社的这次合作。在本书编写过程中,还得到了很多朋友的支持和帮助,包括清华大学的焦丽静、IT168的贝贝、阿里巴巴的李红星、邹大鹏,Oracle公司的rebeca、bryanxu,爱康网的cindy,还有公司领导林镇武,同事史季强、邝俊彪等,在此一并感谢。   在看得见的地方学习知识,在看不到的地方学习智慧。同时也祝愿大家在Oracle RAC的学习道路上顺风顺水。...   张晓明   2009年2月    序言   16年前,当我第一次接触Oracle数据库时,Oracle数据库对我来说就像一位带着面纱的美女,神秘而又憧憬。看着我们的DBA花了两三天的时间,在键盘上输入几百条甚至上千条命令,经过几次失败,才成功地在一台HP G30小型机上安装成功时,我就想也许还是做一个数据库开发员更适合我。那时的Oracle还没有图形化安装界面,所有操作都是通过命令行完成的。作为开发人员的我们不敢也不允许对数据库做数据增、删、改、查之外的其他操作。数据库的安装、配置、建表、建索引、增加用户等也只有DBA才能完成。.   但在今天,情况已经完全不一样了,以前只有DBA能完成的工作现在大部分都可以由开发人员或其他非DBA人员来完成。大部分的开发人员都有在自己的PC机上安装Oracle数据库的经历,运行Oracle Universal Installer和运行其他普通的图形界面应用程序已经没什么区别,用户甚至可以不用提供任何参数,只是点击几下鼠标即可完成,整个过程可以不超过30分钟。但这并不意味着我们不需要DBA,就像波音747飞机上的驾驶员,虽然747的自动导航系统可以控制飞机从起飞、巡航到降落,但我相信没有一个乘客会说不需要飞行驾驶员了,相反我们会提出更高的要求,因为我们需要更安全、更舒适的飞行。同样,DBA也是如此。   我从事IT工作已近20年,还从来没像今天这样关心数据库的安全和可靠性,因为数据库已经成为我们一切业务的核心。我们公司为电信企业提供业务服务,这就要求我们的数据库一年365天不间断地可靠运行,任何一种中断都是不能接受的。每天数据库要处理上亿次的交易,每天数据量接近8GB,并还在不断增长中。为提高数据库的可用性、扩展性和可靠性,我们的DBA团队尝试了不同的技术,最后采用了Oracle RAC。经过整个团队的努力,现在我们已经成功地在我们的生产环境部署了Oracle RAC。张晓明先生,既是本书的作者,也是带领我们DBA团队成功实施Oracle RAC的技术领头人。我相信不久,随着RAC技术越来越成熟,会有越来越多的公司选择RAC。作为DBA,就像作者在书中写的那样:“对于还从没接触过RAC的DBA来说,现在该是未雨绸缪的时候了。”..   在书中,作者也遵循了著名的Oracle大师,Oracle公司副总裁Thomas Kyte提倡的“Test thing yourself and base decision on proven examples”。他从一个简单的实施实例出发,循序渐进、由浅入深地讲解了Oracle RAC的实施细节、RAC的工作原理和实施、维护过程中可能碰到的问题和解决技巧。我相信所有的DBA都可受益匪浅。   IBM创始人Thomas J.Watson曾说过:“Though have been father of every advance since time began,‘I didn't think’has cost the world millions of dollars”,我想这本书能带给你的不仅是知识和技术,更是一种不同的思维和观点。我希望每位读者能从书中得到更多的思考,并为这个世界节省更多的“millions of dollars”。...   林镇武 副总裁   北京无限新锐网络科技有限公司   

立即下载
【全网最高清版本】大话数据结构_最高清版_带目录_附三个版本.rar(可复制文字)

肯定是全网你能找到的最高清的版本,没有之一。 内含三个版本:【大话数据结构.epub】【大话数据结构_最高清版_带目录.pdf】【大话数据结构_清晰版_带目录.pdf】 大话数据结构_最高清版_带目录.pdf 这个文档不清晰你来打死我。 本书以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇?一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。

立即下载
大话数据结构》高清带书签pdf版

本书为超级畅销书《大话数据结构》高清带书签pdf版! 以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。 通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。

立即下载
算法(第四版)和大话数据结构,高清版pdf

算法(第四版)和大话数据结构,高清版pdf

立即下载
大话数据结构 高清完整版.pdf下载

大话数据结构 完整版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!

立即下载
大话系列-大话数据结构(pdf高清版)

本书为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。 本书以一个计算机教师教学为场 景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。 目录: 第1章数据结构绪论 1 1.1开场白 2 如果你交给某人一个程序,你将折磨他一整天;如果你教某人如何编写程序,你将折磨他一辈子。 1.2你数据结构怎么学的? 3 他完成开发并测试通过后,得意地提交了代码。项目经理看完代码后拍着桌子对他说:“你数据结构是怎么学的?” 1.3数据结构起源 4 1.4基本概念和术语 5 正所谓“巧妇难为无米之炊”,再强大的计算机,也要有“米”下锅才可以干活,否则就是一堆破铜烂铁。这个“米”就是数据。 1.4.1数据 5 1.4.2数据元素 5 1.4.3数据项 6 1.4.4数据对象 6 1.4.5数据结构 6 1.5逻辑结构与物理结构 7 1.5.1逻辑结构 7 1.5.2物理结构 9 1.6抽象数据类型 11 大家都需要房子住,但显然没钱考虑大房子是没有意义的。于是商品房就出现了各种各样的户型,有几百平米的别墅,也有仅两平米的胶囊公寓…… 1.6.1数据类型 11 .1.6.2抽象数据类型 12 1.7总结回顾 14 1.8结尾语 15 最终的结果一定是,你对着别人很牛的说“数据结构——就那么回事。” 第2章算法 17 2.1开场白 18 2.2数据结构与算法关系 18 计算机界的前辈们,是一帮很牛很牛的人,他们使得很多看似没法解决或者很难解决的问题,变得如此美妙和神奇。 2.3两种算法的比较 19 高斯在上小学的一天,老师要求每个学生都计算1+2+…+100的结果,谁先算出来谁先回家…… 2.4算法定义 20 现实世界中的算法千变万化,没有通用算法可以解决所有问题。甚至一个小问题,某个解决此类问题很优秀的算法却未必就适合它。 2.5算法的特性 21 2.5.1输入输出 21 2.5.2有穷性 21 2.5.3确定性 21 2.5.4可行性 21 2.6算法设计的要求 22 求100个人的高考成绩平均分与求全省所有考生的成绩平均分在占用时间和内存存储上有非常大的差异,我们自然追求高效率和低存储的算法来解决问题。 2.6.1正确性 22 2.6.2可读性 23 2.6.3健壮性 23 2.6.4时间效率高和存储量低 23 2.7算法效率的度量方法 24 随着n值越来越大,它们在时间效率上的差异也就越来越大。好比有些人每天都在学习,而另一些人,打打游戏、睡睡大觉,毕业后前者名企争着要,后者求职处处无门。 2.7.1事后统计方法 24 2.7.2事前分析估算方法 25 2.8函数的渐近增长 27 2.9算法时间复杂度 29 理解大o推导不算难,难的其实是对数列的一些相关运算,这考察的更多的是数学知识和能力。 2.9.1算法时间复杂度定义 29 2.9.2推导大o阶方法 30 2.9.3常数阶 30 2.9.4线性阶 31 2.9.5对数阶 32 2.9.6平方阶 32 2.10常见的时间复杂度 35 有些时候,告诉你某些东西不可以去尝试,也是一种知识的传递。总不能非要去被毒蛇咬一口才知道蛇不可以去招惹吧。 2.11最坏情况与平均情况 35 2.12算法空间复杂度 36 事先建立一个有2050大的数组,然后把所有年份按下标数字对应,如果是闰年,此数组项的值就是1,如果不是就是0。这样,所谓的判断某一年是否是闰年就变成了查找这个数组的某一项的值是多少的问题。 2.13总结回顾 37 2.14结尾语 38 愚公移山固然可敬,但发明炸药和推土机,可能更加实在和聪明。 第3章线性表 41 3.1开场白 42 门外家长都挤在大门口与门里的小孩子的井然有序,形成了鲜明对比。哎,有时大人的所作所为,其实还不如孩子。 3.2线性表的定义 42 3.3线性表的抽象数据类型 45 有时我们想知道某个小朋友(比如麦兜)是否是班级的同学,老师会告诉我说,没有,麦兜是在春田花花幼儿园里。这种查找某个元素是否存在的操作很常用。 3.4线性表的顺序存储结构 47 他每次一吃完早饭就冲着去了图书馆,挑一个好地儿,把他书包里的书,一本一本的按座位放好,长长一排,九个座硬是被他占了。 3.4.1顺序存储定义 47 3.4.2顺序存储方式 47 3.4.3数据长度与线性表长度区别 48 3.4.4地址计算方法 49 3.5顺序存储结构的插入与删除 50 春运时去买火车票,大家都排队排着好好的,这时来了一个美女:“可否让我排在你前面?”这可不得了,后面的人像蠕虫一样,全部都得退后一步。 3.5.1获得元素操作 50 3.5.2插入操作 51 3.5.3删除操作 52 3.5.4线性表顺序存储结构的优缺点 54 3.6线性表的链式存储结构 55 反正也是要让相邻元素间留有足够余地,那干脆所有元素都不要考虑相邻位置了,哪有空位就到哪里。而只是让每个元素知道它下一个元素的位置在哪里。 3.6.1顺序存储结构不足的解决 办法 55 3.6.2线性表链式存储结构定义 56 3.6.3头指针与头结点的异同 58 3.6.4线性表链式存储结构代码描述 58 3.7单链表的读取 60 3.8单链表的插入与删除 61 本来是爸爸左牵着妈妈的手、右牵着宝宝的手在马路边散步。突然迎面走来一美女,爸爸失神般地望着,此情景被妈妈逮个正着,于是扯开父子俩,拉起宝宝的左手就快步朝前走去。 3.8.1单链表的插入 61 3.8.2单链表的删除 64 3.9单链表的整表创建 66 3.10单链表的整表删除 69 3.11单链表结构与顺序存储结构优缺点 70 3.12静态链表 71 对于一些语言,如basic、fortran等早期的编程高级语言,由于没有指针,这链表结构,按照前面我们的讲法,它就没法实现了。怎么办呢? 3.12.1静态链表的插入操作 73 3.12.2静态链表的删除操作 75 3.12.3静态链表优缺点 77 3.13循环链表 78 这个轮回的思想很有意思。它强调了不管你今生是穷是富,如果持续行善积德,下辈子就会好过,反之就会遭到报应。 3.14双向链表 81 就像每个人的人生一样,欲收获就得付代价。双向链表既然是比单链表多了如可以反向遍历查找等的数据结构,那么也就需要付出一些小的代价。 3.15总结回顾 84 3.16结尾语 85 如果你觉得上学读书是受罪,假设你可以活到80岁,其实你最多也就吃了20年苦。用人生四分之一的时间来换取其余时间的幸福生活,这点苦不算啥。 第4章栈与队列 87 4.1开场白 88 想想看,在你准备用枪的时候,突然这手枪明明有子弹却打不出来,这不是要命吗。 4.2栈的定义 89 类似的很多软件,比如word、photoshop等,都有撤消(undo)的操作,也是用栈这种思想方式来实现的。 4.2.1栈的定义 89 4.2.2进栈出栈变化形式 90 4.3栈的抽象数据类型 91 4.4栈的顺序存储结构及实现 92 4.4.1栈的顺序存储结构 92 4.4.2栈的顺序存储结构进栈操作 93 4.4.3栈的顺序存储结构出栈操作 94 4.5两栈共享空间 94 两个大学室友毕业同时到北京工作,他们都希望租房时能找到独自住的一室户或一室一厅,可找来找去发现,实在是承受不起。 4.6栈的链式存储结构及实现 97 4.6.1栈的链式存储结构 97 4.6.2栈的链式存储结构进栈操作 98 4.6.3栈的链式存储结构出栈操作 99 4.7栈的作用 100 4.8栈的应用——递归 100 当你往镜子前面一站,镜子里面就有一个你的像。但你试过两面镜子一起照吗?如果a、b两面镜子相互面对面放着,你往中间一站,嘿,两面镜子里都有你的千百个“化身”。 4.8.1斐波那契数列实现 101 4.8.2递归定义 103 4.9栈的应用——四则运算表达式求值 104 4.9.1后缀(逆波兰)表示法定义 104 4.9.2后缀表达式计算结果 106 4.9.3中缀表达式转后缀表达式 108 4.10队列的定义 111 电脑有时会处于疑似死机的状态。就当你失去耐心,打算了reset时。突然它像酒醒了一样,把你刚才点击的所有操作全部都按顺序执行了一遍。 4.11队列的抽象数据类型 112 4.12循环队列 113 你上了公交车发现前排有两个空座位,而后排所有座位都已经坐满,你会怎么做?立马下车,并对自己说,后面没座了,我等下一辆?没这么笨的人,前面有座位,当然也是可以坐的。 4.12.1队列顺序存储的不足 112 4.12.2循环队列定义 114 4.13队列的链式存储结构及实现 117 4.13.1队列链式存储结构入队操作118 4.13.2队列链式存储结构出队操作 119 4.14总结回顾 120 4.15结尾语 121 人生,需要有队列精神的体现。南极到北极,不过是南纬90度到北纬90度的队列,如果你中途犹豫,临时转向,也许你就只能和企鹅相伴永远。可事实上,无论哪个方向,只要你坚持到底,你都可以到达终点。 第5章串 123 5.1开场白 124 “枯眼望遥山隔水,往来曾见几心知?壶空怕酌一杯酒,笔下难成和韵诗。途路阻人离别久,讯音无雁寄回迟。孤灯夜守长寥寂,夫忆妻兮父忆儿。”……可再仔细一读发现,这首诗竟然可以倒过来读。 5.2串的定义 124 我所提到的“over”、“end”、“lie”其实就是“lover”、“friend”、“believe”这些单词字符串的子串。 5.3串的比较 126 5.4串的抽象数据类型 127 5.5串的存储结构 128 感情上发生了问题,为了向女友解释一下,我准备发一条短信,一共打了75个字。最后八个字是“我恨你是不可能的”,点发送。后来得知对方收到的,只有70个字,短信结尾是“……我恨你”。 5.5.1串的顺序存储结构 129 5.5.2串的链式存储结构 131 5.6朴素的模式匹配算法 131 主串为s=”00000000000000000000000000000000000000000000000001”,而要匹配的子串为t=”0000000001”,……在匹配时,每次都得将t中字符循环到最后一位才发现,哦,原来它们是不匹配的。 5.7kmp模式匹配算法 135 很多年前我们的科学家觉得像这种有多个0和1重复字符的字符串,却需要挨个遍历的算法,是非常糟糕的事情。 5.7.1kmp模式匹配算法原理 135 5.7.2next数组值推导 139 5.7.3kmp模式匹配算法实现 141 5.7.4kmp模式匹配算法改进 142 5.7.5nextval数组值推导 144 5.8总结回顾 146 5.9结尾语 146 《璇玑图》共八百四十字,纵横各二十九字,纵、横、斜、交互、正、反读或退一字、迭一字读均可成诗,诗有三、四、五、六、七言不等,目前有人统计可组成七千九百五十八首诗。听清楚哦,是7958首。 第6章树 149 6.1开场白 150 无论多高多大的树,那也是从小到大的,由根到叶,一点点成长起来的。俗话说十年树木,百年树人,可一棵大树又何止是十年这样容易。 6.2树的定义 150 树的定义其实就是我们在讲解栈时提到的递归的方法。也就是在树的定义之中还用到了树的概念,这是比较新的一种定义方法。 6.2.1结点分类 152 6.2.2结点间关系 152 6.2.3树的其他相关概念 153 6.3树的抽象数据类型 154 6.4树的存储结构 155 6.4.1双亲表示法 155 6.4.2孩子表示法 158 6.4.3孩子兄弟表示法 162 6.5二叉树的定义 163 苏东坡曾说:“人有悲欢离合,月有阴晴圆缺,此事古难全”。意思就是完美是理想,不完美才是人生。我们通常举的例子也都是左高右低、参差不齐的二叉树。那是否存在完美的二叉树呢? 6.5.1二叉树特点 164 6.5.2特殊二叉树 166 6.6二叉树的性质 169 6.6.1二叉树性质1 169 6.6.2二叉树性质2 169 6.6.3二叉树性质3 169 6.6.4二叉树性质4 170 6.6.5二叉树性质5 171 6.7二叉树的存储结构 172 6.7.1二叉树顺序存储结构 172 6.7.2二叉链表 173 6.8遍历二叉树 174 你人生的道路上,高考填志愿要面临哪个城市、哪所大学、具体专业等选择,由于选择方式的不同,遍历的次序就完全不同。 6.8.1二叉树遍历原理 174 6.8.2二叉树遍历方法 175 6.8.3前序遍历算法 178 6.8.4中序遍历算法 181 6.8.5后序遍历算法 184 6.8.6推导遍历结果 184 6.9二叉树的建立 187 6.10线索二叉树 188 我们现在提倡节约型社会,一切都应该节约为本。对待我们的程序当然也不例外,能不浪费的时间或空间,都应该考虑节省。 6.10.1线索二叉树原理 188 6.10.2线索二叉树结构实现 191 6.11树、森林与二叉树的转换 195 有个乡镇企业也买了同样的生产线,老板发现这个问题后找了个小工来说:你必须搞定,不然炒你鱿鱼。小工很快想出了办法:他在生产线旁边放了台风扇猛吹,空皂盒自然会被吹走。 6.11.1树转换为二叉树 196 6.11.2森林转换为二叉树 197 6.11.3二叉树转换为树 197 6.11.4二叉树转换为森林 199 6.11.5树与森林的遍历 199 6.12赫夫曼树及其应用 200 压缩而不出错是如何做到的呢?简单的说,就是把我们要压缩的文本进行重新编码,以达到减少不必要的空间的技术。压缩和解压缩技术就是基于赫夫曼的研究之上发展而来,我们应该记住他。 6.12.1赫夫曼树 200 6.12.2赫夫曼树定义与原理 203 6.12.3赫夫曼编码 205 6.13总结回顾 208 6.14结尾语 209 人受伤时会流下泪水。树受伤时,天将再不会哭。希望我们的未来不要仅仅是钢筋水泥建造的高楼,也要有那郁郁葱葱的森林和草地,我们人类才可能与自然和谐共处。 第7章图 211 7.1开场白 212 如果你不善于规划,很有可能就会出现如玩好新疆后到海南,然后再冲向黑龙江这样的荒唐决策。 7.2图的定义 213 现实中,人与人之间关系就非常复杂,比如我的认识的朋友,可能他们之间也互相认识,这就不是简单的一对一、一对多的关系了,那就是我们今天要研究的主题——图。 7.2.1各种图定义 214 7.2.2图的顶点与边间关系 217 7.2.3连通图相关术语 219 7.2.4图的定义与术语总结 222 7.3图的抽象数据类型 222 7.4图的存储结构 223 因为美国的黑夜就是中国的白天,利用互联网,他的员工白天上班就可以监控到美国仓库夜间的实际情况,如果发生了像火灾、偷盗这样的突发事件,及时电话到美国当地相关人员处理 7.4.1邻接矩阵 224 7.4.2邻接表 228 7.4.3十字链表 232 7.4.4邻接多重表 234 7.4.5边集数组 236 7.5图的遍历 237 我有一天早晨准备出门,发现钥匙不见了。一定是我儿子拿着玩,不知道丢到哪个犄角旮旯去了,你们说,我应该如何找? 7.5.1深度优先遍历 238 7.5.2广度优先遍历 242 7.6最小生成树 245 如果你加班加点,没日没夜设计出的结果是方案一,我想你离被炒鱿鱼应该是不远了(同学微笑)。因为这个方案比后两个方案一半还多的成本会让老板气晕过去的。 7.6.1普里姆(prim)算法 247 7.6.2克鲁斯卡尔(kruskal)算法 251 7.7最短路径 257 有人为了省钱,需路程最短,但换乘站间距离长等原因并不省时间;另一些人,他为赶时间,最大的需求是总时间要短;还有一类人,他们都不想多走路,关键是换乘要少,这样可以在车上好好休息一下。 7.7.1迪杰斯特拉(dijkstra)算法 259 7.7.3弗洛伊德(floyd)算法 265 7.8拓扑排序 270 电影制作不可能在人员到位进驻场地时,导演还没有找到,也不可能在拍摄过程中,场地都没有。这都会导致荒谬的结果。 7.8.1拓扑排序介绍 271 7.8.2拓扑排序算法 272 7.9关键路径 277 假如造一个轮子要0.5天、造一个发动机要3天、造一个车底盘要2天、造一个外壳要2天,其它零部件2天,全部零部件集中到一处要0.5天,组装成车要2天,请问,在汽车厂造一辆车,最短需要多少天呢? 7.9.1关键路径算法原理 279 7.9.2关键路径算法 280 7.10总结回顾 287 7.11结尾语 289 世界上最遥远的距离,不是牛a与牛c之间狭小空隙,而是你们当中,有人在通往牛逼的路上一路狂奔,而有人步入大学校园就学会放弃。 第8章查找 291 8.1开场白 292 当你精心写了一篇博文或者上传一组照片到互联网上,来自世界各地的无数“蜘蛛”便会蜂拥而至。所谓蜘蛛就是搜索引擎公司服务器上软件,它把互联网当成了蜘蛛网,没日没夜的访问上面的各种信息。 8.2查找概论 293 比如网络时代的新名词,如“蜗居”、“蚁族”等,如果需要将它们收录到汉语词典中,显然收录时就需要查找它们是否存在,以及找到如果不存在时应该收录的位置。 8.3顺序表查找 295 8.3.1顺序表查找算法 296 8.3.2顺序表查找优化 297 8.4有序表查找 298 我在纸上已经写好了一个100以内的正整数请你猜,问几次可以猜出来。当时已经介绍了如何才可以最快的猜出这个数字。我们把这种每次取中间记录查找的方法叫做折半查找。 8.4.1折半查找 298 8.4.2插值查找 301 8.4.3斐波那契查找 302 8.5线性索引查找 306 我母亲年纪大了,经常在家里找不到东西,于是她用一小本子,记录了家里所有小东西放置的位置,比如户口本放在右手床头柜下面抽屉中,钞票放在衣……咳,这个就不提了。 8.5.1稠密索引 307 8.5.2分块索引 308 8.5.3倒排索引 311 8.6二叉排序树 313 后来老虎来了,一人拼命地跑,另一人则急中生智,爬到了树上。而老虎是不会爬树的,结果……。爬树者改变了跑的思想,这一改变何等重要,捡回了自己的一条命。 8.6.1二叉排序树查找操作 316 8.6.2二叉排序树插入操作 318 8.6.3二叉排序树删除操作 320 8.6.4二叉排序树总结 327 8.7平衡二叉树(avl树) 328 平板就是一个世界,当诱惑降临,人心中的平衡被打破,世界就会混乱,最后留下的只有孤独寂寞失败。这种单调的机械化的社会,禁不住诱惑的侵蚀,最容易被侵蚀的,恰恰是最空虚的心灵。 8.7.1平衡二叉树实现原理 330 8.7.2平衡二叉树实现算法 334 8.8多路查找树(b树) 341 要观察一个公司是否严谨,看他们如何开会就知道了。如果开会时每一个人都只是带一张嘴,即兴发言,这肯定是一家不严谨的公司。 8.8.12-3树 343 8.8.22-3-4树 348 8.8.3b树 349 8.8.4b+树 351 8.9散列表查找(哈希表)概述 353 你很想学太极拳,听说学校有个叫张三丰的人打得特别好,于是到学校学生处找人,工作人员拿出学生名单,最终告诉你,学校没这个人,并说张三丰几百年前就已经在武当山作古了。 8.9.1散列表查找定义 354 8.9.2散列表查找步骤 355 8.10散列函数的构造方法 356 8.10.1直接定址法 357 8.10.2数字分析法 358 8.10.3平方取中法 359 8.10.4折叠法 359 8.10.5除留余数法 359 8.10.6随机数法 360 8.11处理散列冲突的方法 360 我们每个人都希望身体健康,虽然疾病可以预防,但不可避免,没有任何人可以说,生下来到现在没有生过一次病。 8.11.1开放定址法 361 8.11.2再散列函数法 363 8.11.3链地址法 363 8.11.4公共溢出区法 364 8.12散列表查找实现 365 8.12.1散列表查找算法实现 365 8.12.2散列表查找性能分析 367 8.13总结回顾 368 8.14结尾语 369 如果我是个喜欢汽车的人,时常搜汽车信息。那么当我在搜索框中输入“甲壳虫”、“美洲虎”等关键词时,不要让动物和人物成为搜索的头条。 第9章排序 373 9.1开场白 374 假如我想买一台iphone4的手机,于是上了某电子商务网站去搜索。可搜索后发现,有8863个相关的物品,如此之多,这叫我如何选择。我其实是想买便宜一点的,但是又怕遇到骗子,想找信誉好的商家,如何做? 9.2排序的基本概念与分类 375 比如我们某些大学为了选拔在主科上更优秀的学生,要求对所有学生的所有科目总分倒序排名,并且在同样总分的情况下将语数外总分做倒序排名。这就是对总分和语数外总分两个次关键字的组合排序。 9.2.1排序的稳定性 376 9.2.2内排序与外排序 377 9.2.3排序用到的结构与函数 378 9.3冒泡排序 378 无论你学习哪种编程语言,在学到循环和数组时,通常都会介绍一种排序算法,而这个算法一般就是冒泡排序。并不是它的名称很好听,而是说这个算法的思路最简单,最容易理解。 9.3.1最简单排序实现 379 9.3.2冒泡排序算法 380 9.3.3冒泡排序优化 382 9.3.4冒泡排序复杂度分析 383 9.4简单选择排序 384 还有一种做股票的人,他们很少出手,只是在不断观察和判断,等时机一到,果断买进或卖出。他们因为冷静和沉着,以及交易的次数少,而最终收益颇丰。 9.4.1简单选择排序算法 384 9.4.2简单选择排序复杂度分析 385 9.5直接插入排序 386 哪怕你是第一次玩扑克牌,只要认识这些数字,理牌的方法都是不用教的。将3和4移动到5的左侧,再将2移动到最左侧,顺序就算是理好了。这里,我们的理牌方法,就是直接插入排序法。 9.5.1直接插入排序算法 386 9.5.2直接插入排序复杂度分析 388 9.6希尔排序 389 不管怎么说,希尔排序算法的发明,使得我们终于突破了慢速排序的时代(超越了时间复杂度为o(n2)),之后,更为高效的排序算法也就相继出现了。 9.6.1希尔排序原理 391 9.6.2希尔排序算法 391 9.6.3希尔排序复杂度分析 395 9.7堆排序 396 什么叫堆结构呢?回忆一下我们小时候,特别是男同学,基本都玩过叠罗汉的恶作剧。通常都是先把某个要整的人按倒在地,然后大家就一拥而上扑了上去……后果?后果当然就是一笑了之。 9.7.1堆排序算法 398 9.7.2堆排序复杂度分析 405 9.8归并排序 406 即使你是你们班级第一、甚至年级第一名,如果你没有上分数线,则说明你的成绩排不到全省前1万名,你也就基本失去了当年上本科的机会了。 9.8.1归并排序算法 407 9.8.2归并排序复杂度分析 413 9.8.3非递归实现归并排序 413 9.9快速排序 417 终于我们的高手要登场了,将来你工作后,你的老板让你写个排序算法,而你会的算法中竟然没有快速排序,我想你还是不要声张,偷偷去把快速排序算法找来敲进电脑,这样至少你不至于被大伙儿取笑。 9.9.1快速排序算法 417 9.9.2快速排序复杂度分析 421 9.9.3快速排序优化 422 9.10总结回顾 428 目前还没有十全十美的排序算法,有优点就会有缺点,即使是快速排序法,也只是在整体性能上优越,它也存在排序不稳定、需要大量辅助空间、对少量数据排序无优势等不足。 9.11结尾语 430 如果你有梦想的话,就要去捍卫它。当别人做不到的时候,他们就想要告诉你,你也不能。如果你想要些什么,就得去努力争取。就这样! 附录参考文献 435

立即下载
大话数据结构高清pdf版

大话数据结构高清pdf版, c语言版本讲解,主要包含链表,图,排序,查找

立即下载
大话设计模式(完整版).pdf 中文高清

目录 第一章 代码无错就是优?---简单工厂模式 1.1面试受挫 1.2初学者代码毛病 1.3代码规范 1.4面向对象编程 1.5活字印刷,面向对象 1.6面向对象的好处 1.7复制vs复用 1.8业务的封装 1.9紧耦合vs松耦合 1.10简单工厂模式 1.11UML类图 第2章 商场促销---策咯模式 2.1商场收银软件 。。。。。。。。

立即下载
大话Oracle Grid 云时代的RAC [张晓明著]

一本详细和完整介绍 Oracle Grid 和 Oracle 云的技术好书,全书以 Oracle 11g 这个稳定版本作为基础平台,技术十分全面,并带有书签,方便学习。

立即下载
程杰-大话设计模式-中文完整版(高清PDF)

《大话设计模式》程杰著,中文完整版+源代码,以下是本书目录: 第1章 代码无错就是优?--简单工厂模式 1.1 面试受挫 1.2 初学者代码毛病 1.3 代码规范 1.4 面向对象编程 1.5 活字印刷,面向对象 1.6 面向对象的好处 1.7 复制vs.复用 1.8 业务的封装 1.9 紧耦合vs.松耦合 1.10 简单工厂模式 1.11 UML类图 第2章 商场促销--策略模式 2.1 商场收银软件 2.2 增加打折 2.3 简单工厂实现 2.4 策略模式 2.5 策略模式实现 2.6 策略与简单工厂结合 2.7 策略模式解析 第3章 拍摄UFO--单一职责原则 3.1 新手机 3.2 拍摄 3.3 没用的东西 3.4 单一职责原则 3.5 方块游戏的设计 3.6 手机职责过多吗? 第4章 考研求职两不误--开放-封闭原则 4.1 考研失败 4.2 开放-封闭原则 4.3 何时应对变化 4.4 两手准备,并全力以赴 第5章 会修电脑不会修收音机?--依赖倒转原则 5.1 MM请求修电脑 5.2 电话遥控修电脑 5.3 依赖倒转原则 5.4 里氏代换原则 5.5 修收音机 第6章 穿什么有这么重要?--装饰模式 6.1 穿什么有这么重要? 6.2 小菜扮靓第一版 6.3 小菜扮靓第二版 6.4 装饰模式 6.5 小菜扮靓第三版 6.6 装饰模式总结 第7章 为别人做嫁衣--代理模式 7.1 为别人做嫁衣! 7.2 没有代理的代码 7.3 只有代理的代码 7.4 符合实际的代码 7.5 代理模式 7.6 代理模式应用 7.7 秀才让小六代其求婚 第8章 雷锋依然在人间--工厂方法模式 8.1 再现活雷锋 8.2 简单工厂模式实现 8.3 工厂方法模式实现 8.4 简单工厂vs.工厂方法 8.5 雷锋工厂 第9章 简历复印--原型模式 9.1 夸张的简历 9.2 简历代码初步实现 9.3 原型模式 9.4 简历的原型实现 9.5 浅复制与深复制 9.6 简历的深复制实现 9.7 复制简历vs.手写求职信 第10章 考题抄错会做也白搭--模板方法模式 10.1 选择题不会做,蒙呗! 10.2 重复=易错+难改 10.3 提炼代码 10.4 模板方法模式 10.5 模板方法模式特点 10.6 主观题,看你怎么蒙 第11章 无熟人难办事?--迪米特法则 11.1 第一天上班 11.2 无熟人难办事 11.3 迪米特法则 第12章 牛市股票还会亏钱?--外观模式 12.1 牛市股票还会亏钱? 12.2 股民炒股代码 12.3 投资基金代码 12.4 外观模式 12.5 何时使用外观模式 第13章 好菜每回味不同--建造者模式 13.1 炒面没放盐 13.2 建造小人一 13.3 建造小人二 13.4 建造者模式 13.5 建造者模式解析 13.6 建造者模式基本代码 第14章 老板回来,我不知道--观察者模式 14.1 老板回来?我不知道! 14.2 双向耦合的代码 14.3 解耦实践一 14.4 解耦实践二 14.5 观察者模式 14.6 观察者模式特点 14.7 观察者模式的不足 14.8 事件委托实现 14.9 事件委托说明 14.10 石守吉失手机后的委托 第15章 就不能不换DB吗?--抽象工厂模式 15.1 就不能不换DB吗? 15.2 最基本的数据访问程序 15.3 用了工厂方法模式的数据访问程序 15.4 用了抽象工厂模式的数据访问程序 15.5 抽象工厂模式 15.6 抽象工厂模式的优点与缺点 15.7 用简单工厂来改进抽象工厂 15.8 用反射+抽象工厂的数据访问程序 15.9 用反射+配置文件实现数据访问程序 15.10 无痴迷,不成功 第16章 无尽加班何时休--状态模式 16.1 加班,又是加班! 16.2 工作状态-函数版 16.3 工作状态-分类版 16.4 方法过长是坏味道 16.5 状态模式 16.6 状态模式好处与用处 16.7 工作状态-状态模式版 第17章 在NBA我需要翻译--适配器模式 17.1 在NBA我需要翻译! 17.2 适配器模式 17.3 何时使用适配器模式 17.4 篮球翻译适配器 17.5 适配器模式的.NET应用 17.6 扁鹊的医术 第18章 如果再回到从前--备忘录模式 18.1 如果再给我一次机会…… 18.2 游戏存进度 18.3 备忘录模式 18.4 备忘录模式基本代码 18.5 游戏进度备忘 第19章 分公司=一部门--组合模式 19.1 分公司不就是一部门吗? 19.2 组合模式 19.3 透明方式与安全方式 19.4 何时使用组合模式 19.5 公司管理系统 19.6 组合模式好处 第20章 想走?可以!先买票--迭代器模式 20.1 乘车买票,不管你是谁! 20.2 迭代器模式 20.3 迭代器实现 20.4 .NET的迭代器实现 20.5 迭代高手 第21章 有些类也需计划生育--单例模式 21.1 类也需要计划生育 21.2 判断对象是否是null 21.3 生还是不生是自己的责任 21.4 单例模式 21.5 多线程时的单例 21.6 双重锁定 21.7 静态初始化 第22章 手机软件何时统一--桥接模式 22.1 凭什么你的游戏我不能玩 22.2 紧耦合的程序演化 22.3 合成/聚合复用原则 22.4 松耦合的程序 22.5 桥接模式 22.6 桥接模式基本代码 22.7 我要开发&"好&"游戏 第23章 烤羊肉串引来的思考--命令模式 23.1 吃烤羊肉串! 23.2 烧烤摊vs.烧烤店 23.3 紧耦合设计 23.4 松耦合设计 23.5 松耦合后 23.6 命令模式 23.7 命令模式作用 第24章 加薪非要老总批?--职责链模式 24.1 老板,我要加薪! 24.2 加薪代码初步 24.3 职责链模式 24.4 职责链的好处 24.5 加薪代码重构 24.6 加薪成功 第25章 世界需要和平--中介者模式 25.1 世界需要和平! 25.2 中介者模式 25.3 安理会做中介 25.4 中介者模式优缺点 第26章 项目多也别傻做--享元模式 26.1 项目多也别傻做! 26.2 享元模式 26.3 网站共享代码 26.4 内部状态与外部状态 26.5 享元模式应用 第27章 其实你不懂老板的心--解释器模式 27.1 其实你不懂老板的心 27.2 解释器模式 27.3 解释器模式好处 27.4 音乐解释器 27.5 音乐解释器实现 27.6 料事如神 第28章 男人和女人--访问者模式 28.1 男人和女人! 28.2 最简单的编程实现 28.3 简单的面向对象实现 28.4 用了模式的实现 28.5 访问者模式 28.6 访问者模式基本代码 28.7 比上不足,比下有余 第29章 OOTV杯超级模式大赛--模式总结 29.1 演讲任务 29.2 报名参赛 29.3 超模大赛开幕式 29.4 创建型模式比赛 29.5 结构型模式比赛 29.6 行为型模式一组比赛 29.7 行为型模式二组比赛 29.8 决赛 29.9 梦醒时分 29.10 没有结束的结尾

立即下载
大话数据结构pdf完整版带目录以及C代码

目录 · · · · · · 第1章数据结构绪论 1 1.1开场白 2 如果你交给某人一个程序,你将折磨他一整天;如果你教某人如何编写程序,你将折磨他一辈子。 1.2你数据结构怎么学的? 3 他完成开发并测试通过后,得意地提交了代码。项目经理看完代码后拍着桌子对他说:“你数据结构是怎么学的?” 1.3数据结构起源 4 1.4基本概念和术语 5 正所谓“巧妇难为无米之炊”,再强大的计算机,也要有“米”下锅才可以干活,否则就是一堆破铜烂铁。这个“米”就是数据。 1.4.1数据 5 1.4.2数据元素 5 1.4.3数据项 6 1.4.4数据对象 6 1.4.5数据结构 6 1.5逻辑结构与物理结构 7 1.5.1逻辑结构 7 1.5.2物理结构 9 1.6抽象数据类型 11 大家都需要房子住,但显然没钱考虑大房子是没有意义的。于是商品房就出现了各种各样的户型,有几百平米的别墅,也有仅两平米的胶囊公寓…… 1.6.1数据类型 11 .1.6.2抽象数据类型 12 1.7总结回顾 14 1.8结尾语 15 最终的结果一定是,你对着别人很牛的说“数据结构——就那么回事。” 第2章算法 17 2.1开场白 18 2.2数据结构与算法关系 18 计算机界的前辈们,是一帮很牛很牛的人,他们使得很多看似没法解决或者很难解决的问题,变得如此美妙和神奇。 2.3两种算法的比较 19 高斯在上小学的一天,老师要求每个学生都计算1+2+…+100的结果,谁先算出来谁先回家…… 2.4算法定义 20 现实世界中的算法千变万化,没有通用算法可以解决所有问题。甚至一个小问题,某个解决此类问题很优秀的算法却未必就适合它。 2.5算法的特性 21 2.5.1输入输出 21 2.5.2有穷性 21 2.5.3确定性 21 2.5.4可行性 21 2.6算法设计的要求 22 求100个人的高考成绩平均分与求全省所有考生的成绩平均分在占用时间和内存存储上有非常大的差异,我们自然追求高效率和低存储的算法来解决问题。 2.6.1正确性 22 2.6.2可读性 23 2.6.3健壮性 23 2.6.4时间效率高和存储量低 23 2.7算法效率的度量方法 24 随着n值越来越大,它们在时间效率上的差异也就越来越大。好比有些人每天都在学习,而另一些人,打打游戏、睡睡大觉,毕业后前者名企争着要,后者求职处处无门。 2.7.1事后统计方法 24 2.7.2事前分析估算方法 25 2.8函数的渐近增长 27 2.9算法时间复杂度 29 理解大o推导不算难,难的其实是对数列的一些相关运算,这考察的更多的是数学知识和能力。 2.9.1算法时间复杂度定义 29 2.9.2推导大o阶方法 30 2.9.3常数阶 30 2.9.4线性阶 31 2.9.5对数阶 32 2.9.6平方阶 32 2.10常见的时间复杂度 35 有些时候,告诉你某些东西不可以去尝试,也是一种知识的传递。总不能非要去被毒蛇咬一口才知道蛇不可以去招惹吧。 2.11最坏情况与平均情况 35 2.12算法空间复杂度 36 事先建立一个有2050大的数组,然后把所有年份按下标数字对应,如果是闰年,此数组项的值就是1,如果不是就是0。这样,所谓的判断某一年是否是闰年就变成了查找这个数组的某一项的值是多少的问题。 2.13总结回顾 37 2.14结尾语 38 愚公移山固然可敬,但发明炸药和推土机,可能更加实在和聪明。 第3章线性表 41 3.1开场白 42 门外家长都挤在大门口与门里的小孩子的井然有序,形成了鲜明对比。哎,有时大人的所作所为,其实还不如孩子。 3.2线性表的定义 42 3.3线性表的抽象数据类型 45 有时我们想知道某个小朋友(比如麦兜)是否是班级的同学,老师会告诉我说,没有,麦兜是在春田花花幼儿园里。这种查找某个元素是否存在的操作很常用。 3.4线性表的顺序存储结构 47 他每次一吃完早饭就冲着去了图书馆,挑一个好地儿,把他书包里的书,一本一本的按座位放好,长长一排,九个座硬是被他占了。 3.4.1顺序存储定义 47 3.4.2顺序存储方式 47 3.4.3数据长度与线性表长度区别 48 3.4.4地址计算方法 49 3.5顺序存储结构的插入与删除 50 春运时去买火车票,大家都排队排着好好的,这时来了一个美女:“可否让我排在你前面?”这可不得了,后面的人像蠕虫一样,全部都得退后一步。 3.5.1获得元素操作 50 3.5.2插入操作 51 3.5.3删除操作 52 3.5.4线性表顺序存储结构的优缺点 54 3.6线性表的链式存储结构 55 反正也是要让相邻元素间留有足够余地,那干脆所有元素都不要考虑相邻位置了,哪有空位就到哪里。而只是让每个元素知道它下一个元素的位置在哪里。 3.6.1顺序存储结构不足的解决 办法 55 3.6.2线性表链式存储结构定义 56 3.6.3头指针与头结点的异同 58 3.6.4线性表链式存储结构代码描述 58 3.7单链表的读取 60 3.8单链表的插入与删除 61 本来是爸爸左牵着妈妈的手、右牵着宝宝的手在马路边散步。突然迎面走来一美女,爸爸失神般地望着,此情景被妈妈逮个正着,于是扯开父子俩,拉起宝宝的左手就快步朝前走去。 3.8.1单链表的插入 61 3.8.2单链表的删除 64 3.9单链表的整表创建 66 3.10单链表的整表删除 69 3.11单链表结构与顺序存储结构优缺点 70 3.12静态链表 71 对于一些语言,如basic、fortran等早期的编程高级语言,由于没有指针,这链表结构,按照前面我们的讲法,它就没法实现了。怎么办呢? 3.12.1静态链表的插入操作 73 3.12.2静态链表的删除操作 75 3.12.3静态链表优缺点 77 3.13循环链表 78 这个轮回的思想很有意思。它强调了不管你今生是穷是富,如果持续行善积德,下辈子就会好过,反之就会遭到报应。 3.14双向链表 81 就像每个人的人生一样,欲收获就得付代价。双向链表既然是比单链表多了如可以反向遍历查找等的数据结构,那么也就需要付出一些小的代价。 3.15总结回顾 84 3.16结尾语 85 如果你觉得上学读书是受罪,假设你可以活到80岁,其实你最多也就吃了20年苦。用人生四分之一的时间来换取其余时间的幸福生活,这点苦不算啥。 第4章栈与队列 87 4.1开场白 88 想想看,在你准备用枪的时候,突然这手枪明明有子弹却打不出来,这不是要命吗。 4.2栈的定义 89 类似的很多软件,比如word、photoshop等,都有撤消(undo)的操作,也是用栈这种思想方式来实现的。 4.2.1栈的定义 89 4.2.2进栈出栈变化形式 90 4.3栈的抽象数据类型 91 4.4栈的顺序存储结构及实现 92 4.4.1栈的顺序存储结构 92 4.4.2栈的顺序存储结构进栈操作 93 4.4.3栈的顺序存储结构出栈操作 94 4.5两栈共享空间 94 两个大学室友毕业同时到北京工作,他们都希望租房时能找到独自住的一室户或一室一厅,可找来找去发现,实在是承受不起。 4.6栈的链式存储结构及实现 97 4.6.1栈的链式存储结构 97 4.6.2栈的链式存储结构进栈操作 98 4.6.3栈的链式存储结构出栈操作 99 4.7栈的作用 100 4.8栈的应用——递归 100 当你往镜子前面一站,镜子里面就有一个你的像。但你试过两面镜子一起照吗?如果a、b两面镜子相互面对面放着,你往中间一站,嘿,两面镜子里都有你的千百个“化身”。 4.8.1斐波那契数列实现 101 4.8.2递归定义 103 4.9栈的应用——四则运算表达式求值 104 4.9.1后缀(逆波兰)表示法定义 104 4.9.2后缀表达式计算结果 106 4.9.3中缀表达式转后缀表达式 108 4.10队列的定义 111 电脑有时会处于疑似死机的状态。就当你失去耐心,打算了reset时。突然它像酒醒了一样,把你刚才点击的所有操作全部都按顺序执行了一遍。 4.11队列的抽象数据类型 112 4.12循环队列 113 你上了公交车发现前排有两个空座位,而后排所有座位都已经坐满,你会怎么做?立马下车,并对自己说,后面没座了,我等下一辆?没这么笨的人,前面有座位,当然也是可以坐的。 4.12.1队列顺序存储的不足 112 4.12.2循环队列定义 114 4.13队列的链式存储结构及实现 117 4.13.1队列链式存储结构入队操作118 4.13.2队列链式存储结构出队操作 119 4.14总结回顾 120 4.15结尾语 121 人生,需要有队列精神的体现。南极到北极,不过是南纬90度到北纬90度的队列,如果你中途犹豫,临时转向,也许你就只能和企鹅相伴永远。可事实上,无论哪个方向,只要你坚持到底,你都可以到达终点。 第5章串 123 5.1开场白 124 “枯眼望遥山隔水,往来曾见几心知?壶空怕酌一杯酒,笔下难成和韵诗。途路阻人离别久,讯音无雁寄回迟。孤灯夜守长寥寂,夫忆妻兮父忆儿。”……可再仔细一读发现,这首诗竟然可以倒过来读。 5.2串的定义 124 我所提到的“over”、“end”、“lie”其实就是“lover”、“friend”、“believe”这些单词字符串的子串。 5.3串的比较 126 5.4串的抽象数据类型 127 5.5串的存储结构 128 感情上发生了问题,为了向女友解释一下,我准备发一条短信,一共打了75个字。最后八个字是“我恨你是不可能的”,点发送。后来得知对方收到的,只有70个字,短信结尾是“……我恨你”。 5.5.1串的顺序存储结构 129 5.5.2串的链式存储结构 131 5.6朴素的模式匹配算法 131 主串为s=”00000000000000000000000000000000000000000000000001”,而要匹配的子串为t=”0000000001”,……在匹配时,每次都得将t中字符循环到最后一位才发现,哦,原来它们是不匹配的。 5.7kmp模式匹配算法 135 很多年前我们的科学家觉得像这种有多个0和1重复字符的字符串,却需要挨个遍历的算法,是非常糟糕的事情。 5.7.1kmp模式匹配算法原理 135 5.7.2next数组值推导 139 5.7.3kmp模式匹配算法实现 141 5.7.4kmp模式匹配算法改进 142 5.7.5nextval数组值推导 144 5.8总结回顾 146 5.9结尾语 146 《璇玑图》共八百四十字,纵横各二十九字,纵、横、斜、交互、正、反读或退一字、迭一字读均可成诗,诗有三、四、五、六、七言不等,目前有人统计可组成七千九百五十八首诗。听清楚哦,是7958首。 第6章树 149 6.1开场白 150 无论多高多大的树,那也是从小到大的,由根到叶,一点点成长起来的。俗话说十年树木,百年树人,可一棵大树又何止是十年这样容易。 6.2树的定义 150 树的定义其实就是我们在讲解栈时提到的递归的方法。也就是在树的定义之中还用到了树的概念,这是比较新的一种定义方法。 6.2.1结点分类 152 6.2.2结点间关系 152 6.2.3树的其他相关概念 153 6.3树的抽象数据类型 154 6.4树的存储结构 155 6.4.1双亲表示法 155 6.4.2孩子表示法 158 6.4.3孩子兄弟表示法 162 6.5二叉树的定义 163 苏东坡曾说:“人有悲欢离合,月有阴晴圆缺,此事古难全”。意思就是完美是理想,不完美才是人生。我们通常举的例子也都是左高右低、参差不齐的二叉树。那是否存在完美的二叉树呢? 6.5.1二叉树特点 164 6.5.2特殊二叉树 166 6.6二叉树的性质 169 6.6.1二叉树性质1 169 6.6.2二叉树性质2 169 6.6.3二叉树性质3 169 6.6.4二叉树性质4 170 6.6.5二叉树性质5 171 6.7二叉树的存储结构 172 6.7.1二叉树顺序存储结构 172 6.7.2二叉链表 173 6.8遍历二叉树 174 你人生的道路上,高考填志愿要面临哪个城市、哪所大学、具体专业等选择,由于选择方式的不同,遍历的次序就完全不同。 6.8.1二叉树遍历原理 174 6.8.2二叉树遍历方法 175 6.8.3前序遍历算法 178 6.8.4中序遍历算法 181 6.8.5后序遍历算法 184 6.8.6推导遍历结果 184 6.9二叉树的建立 187 6.10线索二叉树 188 我们现在提倡节约型社会,一切都应该节约为本。对待我们的程序当然也不例外,能不浪费的时间或空间,都应该考虑节省。 6.10.1线索二叉树原理 188 6.10.2线索二叉树结构实现 191 6.11树、森林与二叉树的转换 195 有个乡镇企业也买了同样的生产线,老板发现这个问题后找了个小工来说:你必须搞定,不然炒你鱿鱼。小工很快想出了办法:他在生产线旁边放了台风扇猛吹,空皂盒自然会被吹走。 6.11.1树转换为二叉树 196 6.11.2森林转换为二叉树 197 6.11.3二叉树转换为树 197 6.11.4二叉树转换为森林 199 6.11.5树与森林的遍历 199 6.12赫夫曼树及其应用 200 压缩而不出错是如何做到的呢?简单的说,就是把我们要压缩的文本进行重新编码,以达到减少不必要的空间的技术。压缩和解压缩技术就是基于赫夫曼的研究之上发展而来,我们应该记住他。 6.12.1赫夫曼树 200 6.12.2赫夫曼树定义与原理 203 6.12.3赫夫曼编码 205 6.13总结回顾 208 6.14结尾语 209 人受伤时会流下泪水。树受伤时,天将再不会哭。希望我们的未来不要仅仅是钢筋水泥建造的高楼,也要有那郁郁葱葱的森林和草地,我们人类才可能与自然和谐共处。 第7章图 211 7.1开场白 212 如果你不善于规划,很有可能就会出现如玩好新疆后到海南,然后再冲向黑龙江这样的荒唐决策。 7.2图的定义 213 现实中,人与人之间关系就非常复杂,比如我的认识的朋友,可能他们之间也互相认识,这就不是简单的一对一、一对多的关系了,那就是我们今天要研究的主题——图。 7.2.1各种图定义 214 7.2.2图的顶点与边间关系 217 7.2.3连通图相关术语 219 7.2.4图的定义与术语总结 222 7.3图的抽象数据类型 222 7.4图的存储结构 223 因为美国的黑夜就是中国的白天,利用互联网,他的员工白天上班就可以监控到美国仓库夜间的实际情况,如果发生了像火灾、偷盗这样的突发事件,及时电话到美国当地相关人员处理 7.4.1邻接矩阵 224 7.4.2邻接表 228 7.4.3十字链表 232 7.4.4邻接多重表 234 7.4.5边集数组 236 7.5图的遍历 237 我有一天早晨准备出门,发现钥匙不见了。一定是我儿子拿着玩,不知道丢到哪个犄角旮旯去了,你们说,我应该如何找? 7.5.1深度优先遍历 238 7.5.2广度优先遍历 242 7.6最小生成树 245 如果你加班加点,没日没夜设计出的结果是方案一,我想你离被炒鱿鱼应该是不远了(同学微笑)。因为这个方案比后两个方案一半还多的成本会让老板气晕过去的。 7.6.1普里姆(prim)算法 247 7.6.2克鲁斯卡尔(kruskal)算法 251 7.7最短路径 257 有人为了省钱,需路程最短,但换乘站间距离长等原因并不省时间;另一些人,他为赶时间,最大的需求是总时间要短;还有一类人,他们都不想多走路,关键是换乘要少,这样可以在车上好好休息一下。 7.7.1迪杰斯特拉(dijkstra)算法 259 7.7.3弗洛伊德(floyd)算法 265 7.8拓扑排序 270 电影制作不可能在人员到位进驻场地时,导演还没有找到,也不可能在拍摄过程中,场地都没有。这都会导致荒谬的结果。 7.8.1拓扑排序介绍 271 7.8.2拓扑排序算法 272 7.9关键路径 277 假如造一个轮子要0.5天、造一个发动机要3天、造一个车底盘要2天、造一个外壳要2天,其它零部件2天,全部零部件集中到一处要0.5天,组装成车要2天,请问,在汽车厂造一辆车,最短需要多少天呢? 7.9.1关键路径算法原理 279 7.9.2关键路径算法 280 7.10总结回顾 287 7.11结尾语 289 世界上最遥远的距离,不是牛a与牛c之间狭小空隙,而是你们当中,有人在通往牛逼的路上一路狂奔,而有人步入大学校园就学会放弃。 第8章查找 291 8.1开场白 292 当你精心写了一篇博文或者上传一组照片到互联网上,来自世界各地的无数“蜘蛛”便会蜂拥而至。所谓蜘蛛就是搜索引擎公司服务器上软件,它把互联网当成了蜘蛛网,没日没夜的访问上面的各种信息。 8.2查找概论 293 比如网络时代的新名词,如“蜗居”、“蚁族”等,如果需要将它们收录到汉语词典中,显然收录时就需要查找它们是否存在,以及找到如果不存在时应该收录的位置。 8.3顺序表查找 295 8.3.1顺序表查找算法 296 8.3.2顺序表查找优化 297 8.4有序表查找 298 我在纸上已经写好了一个100以内的正整数请你猜,问几次可以猜出来。当时已经介绍了如何才可以最快的猜出这个数字。我们把这种每次取中间记录查找的方法叫做折半查找。 8.4.1折半查找 298 8.4.2插值查找 301 8.4.3斐波那契查找 302 8.5线性索引查找 306 我母亲年纪大了,经常在家里找不到东西,于是她用一小本子,记录了家里所有小东西放置的位置,比如户口本放在右手床头柜下面抽屉中,钞票放在衣……咳,这个就不提了。 8.5.1稠密索引 307 8.5.2分块索引 308 8.5.3倒排索引 311 8.6二叉排序树 313 后来老虎来了,一人拼命地跑,另一人则急中生智,爬到了树上。而老虎是不会爬树的,结果……。爬树者改变了跑的思想,这一改变何等重要,捡回了自己的一条命。 8.6.1二叉排序树查找操作 316 8.6.2二叉排序树插入操作 318 8.6.3二叉排序树删除操作 320 8.6.4二叉排序树总结 327 8.7平衡二叉树(avl树) 328 平板就是一个世界,当诱惑降临,人心中的平衡被打破,世界就会混乱,最后留下的只有孤独寂寞失败。这种单调的机械化的社会,禁不住诱惑的侵蚀,最容易被侵蚀的,恰恰是最空虚的心灵。 8.7.1平衡二叉树实现原理 330 8.7.2平衡二叉树实现算法 334 8.8多路查找树(b树) 341 要观察一个公司是否严谨,看他们如何开会就知道了。如果开会时每一个人都只是带一张嘴,即兴发言,这肯定是一家不严谨的公司。 8.8.12-3树 343 8.8.22-3-4树 348 8.8.3b树 349 8.8.4b+树 351 8.9散列表查找(哈希表)概述 353 你很想学太极拳,听说学校有个叫张三丰的人打得特别好,于是到学校学生处找人,工作人员拿出学生名单,最终告诉你,学校没这个人,并说张三丰几百年前就已经在武当山作古了。 8.9.1散列表查找定义 354 8.9.2散列表查找步骤 355 8.10散列函数的构造方法 356 8.10.1直接定址法 357 8.10.2数字分析法 358 8.10.3平方取中法 359 8.10.4折叠法 359 8.10.5除留余数法 359 8.10.6随机数法 360 8.11处理散列冲突的方法 360 我们每个人都希望身体健康,虽然疾病可以预防,但不可避免,没有任何人可以说,生下来到现在没有生过一次病。 8.11.1开放定址法 361 8.11.2再散列函数法 363 8.11.3链地址法 363 8.11.4公共溢出区法 364 8.12散列表查找实现 365 8.12.1散列表查找算法实现 365 8.12.2散列表查找性能分析 367 8.13总结回顾 368 8.14结尾语 369 如果我是个喜欢汽车的人,时常搜汽车信息。那么当我在搜索框中输入“甲壳虫”、“美洲虎”等关键词时,不要让动物和人物成为搜索的头条。 第9章排序 373 9.1开场白 374 假如我想买一台iphone4的手机,于是上了某电子商务网站去搜索。可搜索后发现,有8863个相关的物品,如此之多,这叫我如何选择。我其实是想买便宜一点的,但是又怕遇到骗子,想找信誉好的商家,如何做? 9.2排序的基本概念与分类 375 比如我们某些大学为了选拔在主科上更优秀的学生,要求对所有学生的所有科目总分倒序排名,并且在同样总分的情况下将语数外总分做倒序排名。这就是对总分和语数外总分两个次关键字的组合排序。 9.2.1排序的稳定性 376 9.2.2内排序与外排序 377 9.2.3排序用到的结构与函数 378 9.3冒泡排序 378 无论你学习哪种编程语言,在学到循环和数组时,通常都会介绍一种排序算法,而这个算法一般就是冒泡排序。并不是它的名称很好听,而是说这个算法的思路最简单,最容易理解。 9.3.1最简单排序实现 379 9.3.2冒泡排序算法 380 9.3.3冒泡排序优化 382 9.3.4冒泡排序复杂度分析 383 9.4简单选择排序 384 还有一种做股票的人,他们很少出手,只是在不断观察和判断,等时机一到,果断买进或卖出。他们因为冷静和沉着,以及交易的次数少,而最终收益颇丰。 9.4.1简单选择排序算法 384 9.4.2简单选择排序复杂度分析 385 9.5直接插入排序 386 哪怕你是第一次玩扑克牌,只要认识这些数字,理牌的方法都是不用教的。将3和4移动到5的左侧,再将2移动到最左侧,顺序就算是理好了。这里,我们的理牌方法,就是直接插入排序法。 9.5.1直接插入排序算法 386 9.5.2直接插入排序复杂度分析 388 9.6希尔排序 389 不管怎么说,希尔排序算法的发明,使得我们终于突破了慢速排序的时代(超越了时间复杂度为o(n2)),之后,更为高效的排序算法也就相继出现了。 9.6.1希尔排序原理 391 9.6.2希尔排序算法 391 9.6.3希尔排序复杂度分析 395 9.7堆排序 396 什么叫堆结构呢?回忆一下我们小时候,特别是男同学,基本都玩过叠罗汉的恶作剧。通常都是先把某个要整的人按倒在地,然后大家就一拥而上扑了上去……后果?后果当然就是一笑了之。 9.7.1堆排序算法 398 9.7.2堆排序复杂度分析 405 9.8归并排序 406 即使你是你们班级第一、甚至年级第一名,如果你没有上分数线,则说明你的成绩排不到全省前1万名,你也就基本失去了当年上本科的机会了。 9.8.1归并排序算法 407 9.8.2归并排序复杂度分析 413 9.8.3非递归实现归并排序 413 9.9快速排序 417 终于我们的高手要登场了,将来你工作后,你的老板让你写个排序算法,而你会的算法中竟然没有快速排序,我想你还是不要声张,偷偷去把快速排序算法找来敲进电脑,这样至少你不至于被大伙儿取笑。 9.9.1快速排序算法 417 9.9.2快速排序复杂度分析 421 9.9.3快速排序优化 422 9.10总结回顾 428 目前还没有十全十美的排序算法,有优点就会有缺点,即使是快速排序法,也只是在整体性能上优越,它也存在排序不稳定、需要大量辅助空间、对少量数据排序无优势等不足。 9.11结尾语 430 如果你有梦想的话,就要去捍卫它。当别人做不到的时候,他们就想要告诉你,你也不能。如果你想要些什么,就得去努力争取。就这样! 附录参考文献 435

立即下载
大话ORACLERAC完整版(二)

因为上传文件大小限制,先将整本书分为10个部分,请注意下载! 如果哪个无法打开,请留言! 大话OracleRAC RAC入门指导 第一章,RAC初体验 第二章,什么是RAC集群 第三章,ORACLE CLUSTERWARE 第四章,RAC原理 第五章,ASM初步 第六章,RAC维护工具 第七章,HB和LB 第八章,备份 第九章,恢复 第十章,其他恢复技术 第十一章,RAC和DG 第十二章,RAC和STREAM REPLICATION 第十三章,深入ASM 第十四章,性能与RAC

立即下载
大话Oracle RAC:集群、高可用性、备份与恢复

《大话Oracle RAC:集群、高可用性、备份与恢复》以Oracle 10g为基础,对Oracle RAC进行了全面的介绍和分析。全书分为两个部分,共14章,第1部分是集群理论篇,这部分从集群基础知识入手,通过分析集群环境和单机环境的不同,介绍了集群环境的各个组件及其作用,以及集群环境的一些专有技术,包括Oracle Clusterware、Oracle Database、ASM、Cache Fusion等。第2部分是实践篇,每一章都针对RAC的一个知识点展开讲解,包括Oracle Clusterware的维护、HA与LB、备份、恢复、Flashback家族、RAC和Data Guard的结合使用、RAC和Stream的结合使用,最后对ASM进行深入介绍,并给出性能调整的指导思想。

立即下载
大话设计模式 程杰 高清完整PDF版

其实我们自学知识,经常会遇到知识的断层,就是在没有弄明白实际应用场景而空泛的学习理论(同时没有学习当前知识的先行知识),这样很难入门或走得更深入,而这样的书恰好起到桥梁的作用,它是我阅读过程中相见恨晚的一本书,因为早一点看到这本书,你在这类知识上轻松入门,有了这些知识的铺垫,完全可以上几个台阶深入学习了,我不说它在设计模式上讲得多么深入,但是它确实像一位兄长,领你走一段路,让你在以后的路上即使没有陪伴,也能有信心走得更远。这是我自己的感受,希望可以帮到许多同行的人。电子版也是我在网上找到的资料,清晰度还不错,真的希望更多的人可以看到它,看完这本有趣的书,你的能力和眼界相信是可以提升一个档次了。 小提示 本资料仅供个人学习参考,请勿用于商业用途,如有能力请尽量购买正版图书,也是对作者的支持。 高清PDF完整版 源代码下载地址 http://download.csdn.net/source/3392394 本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解gof(设计模式的经典名著——design patterns:elements of reusable object-oriented software,中译本名为《设计模式——可复用面向对象软件的基础》的四位作者erich gamma、richard helm、ralph johnson,以及john vlissides,这四人常被称为gang of four,即四人组,简称gof)总结的23个设计模式。本书共分为29章。其中,第1、3、4、5章着重讲解了面向对象的意义、好处以及几个重要的设计原则;第2章,以及第6到第28章详细讲解了23个设计模式;第29章是对设计模式的全面总结。附录部分是通过一个例子的演变为初学者介绍了面向对象的基本概念。本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?以达到不但授之以“鱼”,还授之以“渔”的目的。引导读者体会设计演变过程中蕴藏的大智慧。   本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。 第1章 代码无错就是优?——简单工厂模式  1.1 面试受挫  1.2 初学者代码毛病  1.3 代码规范  1.4 面向对象编程  1.5 活字印刷,面向对象  1.6 面向对象的好处  1.7 复制vs.复用  1.8 业务的封装  1.9 紧耦合vs.松耦合  1.10 简单工厂模式  1.11 uml类图 第2章 商场促销——策略模式  2.1 商场收银软件  2.2 增加打折  2.3 简单工厂实现  2.4 策略模式  2.5 策略模式实现  2.6 策略与简单工厂结合  2.7 策略模式解析 .第3章 拍摄ufo——单一职责原则  3.1 新手机  3.2 拍摄  3.3 没用的东西  3.4 单一职责原则  3.5 方块游戏的设计  3.6 手机职责过多吗? 第4章 考研求职两不误——开放-封闭原则  4.1 考研失败  4.2 开放-封闭原则  4.3 何时应对变化  4.4 两手准备,并全力以赴 第5章 会修电脑不会修收音机?——依赖倒转原则  5.1 mm请求修电脑  5.2 电话遥控修电脑  5.3 依赖倒转原则  5.4 里氏代换原则  5.5 修收音机 第6章 穿什么有这么重要?——装饰模式  6.1 穿什么有这么重要?  6.2 小菜扮靓第一版  6.3 小菜扮靓第二版  6.4 装饰模式  6.5 小菜扮靓第三版  6.6 装饰模式总结 第7章 为别人做嫁衣——代理模式  7.1 为别人做嫁衣!  7.2 没有代理的代码  7.3 只有代理的代码  7.4 符合实际的代码  7.5 代理模式  7.6 代理模式应用  7.7 秀才让小六代其求婚 第8章 雷锋依然在人间——工厂方法模式  8.1 再现活雷锋  8.2 简单工厂模式实现  8.3 工厂方法模式实现  8.4 简单工厂vs.工厂方法  8.5 雷锋工厂 第9章 简历复印——原型模式  9.1 夸张的简历  9.2 简历代码初步实现  9.3 原型模式  9.4 简历的原型实现  9.5 浅复制与深复制  9.6 简历的深复制实现  9.7 复制简历vs.手写求职信 第10章 考题抄错会做也白搭——模板方法模式  10.1 选择题不会做,蒙呗!  10.2 重复=易错+难改  10.3 提炼代码  10.4 模板方法模式  10.5 模板方法模式特点  10.6 主观题,看你怎么蒙 第11章 无熟人难办事?——迪米特法则  11.1 第一天上班  11.2 无熟人难办事  11.3 迪米特法则 第12章 牛市股票还会亏钱?——外观模式  12.1 牛市股票还会亏钱?  12.2 股民炒股代码  12.3 投资基金代码  12.4 外观模式  12.5 何时使用外观模式 第13章 好菜每回味不同——建造者模式  13.1 炒面没放盐  13.2 建造小人一  13.3 建造小人二  13.4 建造者模式  13.5 建造者模式解析  13.6 建造者模式基本代码 第14章 老板回来,我不知道——观察者模式  14.1 老板回来?我不知道!  14.2 双向耦合的代码  14.3 解耦实践一  14.4 解耦实践二  14.5 观察者模式  14.6 观察者模式特点  14.7 观察者模式的不足  14.8 事件委托实现  14.9 事件委托说明  14.10 石守吉失手机后的委托 第15章 就不能不换db吗?——抽象工厂模式  15.1 就不能不换db吗?  15.2 最基本的数据访问程序  15.3 用了工厂方法模式的数据访问程序  15.4 用了抽象工厂模式的数据访问程序  15.5 抽象工厂模式  15.6 抽象工厂模式的优点与缺点  15.7 用简单工厂来改进抽象工厂  15.8 用反射+抽象工厂的数据访问程序  15.9 用反射+配置文件实现数据访问程序  15.10 无痴迷,不成功 第16章 无尽加班何时休——状态模式  16.1 加班,又是加班!  16.2 工作状态-函数版  16.3 工作状态-分类版  16.4 方法过长是坏味道  16.5 状态模式  16.6 状态模式好处与用处  16.7 工作状态-状态模式版 第17章 在nba我需要翻译——适配器模式  17.1 在nba我需要翻译!  17.2 适配器模式  17.3 何时使用适配器模式  17.4 篮球翻译适配器  17.5 适配器模式的.net应用  17.6 扁鹊的医术 第18章 如果再回到从前——备忘录模式  18.1 如果再给我一次机会……  18.2 游戏存进度  18.3 备忘录模式  18.4 备忘录模式基本代码  18.5 游戏进度备忘 第19章 分公司=一部门——组合模式  19.1 分公司不就是一部门吗?  19.2 组合模式  19.3 透明方式与安全方式  19.4 何时使用组合模式  19.5 公司管理系统  19.6 组合模式好处 第20章 想走?可以!先买票——迭代器模式  20.1 乘车买票,不管你是谁!  20.2 迭代器模式  20.3 迭代器实现  20.4 .net的迭代器实现  20.5 迭代高手 第21章 有些类也需计划生育——单例模式  21.1 类也需要计划生育  21.2 判断对象是否是null  21.3 生还是不生是自己的责任  21.4 单例模式  21.5 多线程时的单例  21.6 双重锁定  21.7 静态初始化 第22章 手机软件何时统一——桥接模式  22.1 凭什么你的游戏我不能玩  22.2 紧耦合的程序演化  22.3 合成/聚合复用原则  22.4 松耦合的程序  22.5 桥接模式  22.6 桥接模式基本代码  22.7 我要开发“好”游戏 第23章 烤羊肉串引来的思考——命令模式  23.1 吃烤羊肉串!  23.2 烧烤摊vs.烧烤店  23.3 紧耦合设计  23.4 松耦合设计  23.5 松耦合后  23.6 命令模式  23.7 命令模式作用 第24章 加薪非要老总批?——职责链模式  24.1 老板,我要加薪!  24.2 加薪代码初步  24.3 职责链模式  24.4 职责链的好处  24.5 加薪代码重构  24.6 加薪成功 第25章 世界需要和平——中介者模式  25.1 世界需要和平!  25.2 中介者模式  25.3 安理会做中介  25.4 中介者模式优缺点 第26章 项目多也别傻做——享元模式  26.1 项目多也别傻做!  26.2 享元模式  26.3 网站共享代码  26.4 内部状态与外部状态  26.5 享元模式应用 第27章 其实你不懂老板的心——解释器模式  27.1 其实你不懂老板的心  27.2 解释器模式  27.3 解释器模式好处  27.4 音乐解释器  27.5 音乐解释器实现  27.6 料事如神 第28章 男人和女人——访问者模式  28.1 男人和女人!  28.2 最简单的编程实现  28.3 简单的面向对象实现  28.4 用了模式的实现  28.5 访问者模式  28.6 访问者模式基本代码  28.7 比上不足,比下有余 第29章 ootv杯超级模式大赛——模式总结  29.1 演讲任务  29.2 报名参赛  29.3 超模大赛开幕式  29.4 创建型模式比赛  29.5 结构型模式比赛  29.6 行为型模式一组比赛  29.7 行为型模式二组比赛  29.8 决赛  29.9 梦醒时分  29.10 没有结束的结尾 附录 a 培训实习生——面向对象基础  a.1 培训实习生  a.2 类与实例  a.3 构造方法  a.4 方法重载  a.5 属性与修饰符  a.6 封装  a.7 继承  a.8 多态  a.9 重构  a.10 抽象类  a.11 接口  a.12 集合  a.13 泛型  a.14 委托与事件  a.15 客套

立即下载
大话通信(pdf清晰版)

大话通信全本,pdf清晰版本,稍微有点大,116M

立即下载
大话无线通信》(通俗易懂).pdf

《大话无线通信》(通俗易懂),以生活常见的例子解释移动通信中的概念。

立即下载
大话数据结构 高清完整版.pdf下载(无标签,较模糊,请酌情下载)

大话数据结构 完整版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除! 本书为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。, 本书以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇?一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物

立即下载
大话数据结构_PDF电子书下载 高清 带索引书签目录_sample.pdf

大话数据结构,以诙谐的语言将生涩的数据结构知识趣味化,让更多人能够愉快的学习~高清版,与君共享

立即下载
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

大话OracleRac 高清目录版

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可返还被扣除的积分

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: