大话数据结构_带标签_高清文字版

所需积分/C币:12 2019-03-26 23:14:36 156.27MB PDF
28
收藏 收藏
举报

本书为超级畅销书《大话设计模式》作者程杰潜心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。 本书以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇?一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。
Play 数据结构好枯燥算法很复杂这是真的吗?本书尝试 用轻松的文字和形象的图示重新组织这部分知识的讲解过 程。大话让数据结构和算法的学习变得有趣了,不信? WITH DATA STRUCTUREI 翻开读读看 Graph 90A Queue Stack 大诺 程杰著 清华大学出版社 北京 内简介 以一个计算机教师教学为场景,讲解数据结构和相关算法的知识,通篇以一种趣味方式来叙述 大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的 些经典算法做到逐行分析、多算法比较.与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲 解细致深刻,是一本非常适合自学的读物 本书主要内容包含:数据结构介绍、算法推导大O阶的方法:序结构与链式结构差异、栈与队列 的应用:申的朴素模式匹配、KMP模式匹配算法:二叉树前中后序遮历、赫夫曼树及应用:图的深度 广度遍历:最小生成树两种算法、最短路径两种算法:拓扑排序与关键路径算法:折半查找、插值査找 斐波那契杳找等静态查找:稠密索引、分块索引、倒样索引等索引技术:二叉拌序树、平衡二叉树等动态 查找:B树、B+树技术,散列表技术:冒泡、选择、插入等简单样序:希尔,堆、归并、快速等改进排序 本书适合学过一门編程语言的各类读者,包括在读的大中专计算机专业学生、想转行做开发的非专业 人员、欲考计算机研究生的应届或在职人员,以及工作后霈要补学或温习数据结构和算法的程序员等 本书封面贴有清华大学出版社防伪标签无标签者不得销隹 版权所有.侵权必究。侵权举报电话:010-62782989 l370I 图书在版编目CIP)数据 大话数据结构/程杰著.一北京:清华大学出版社,2011.6 L.①大…①程…H.①数据结构IV①IP3J 中国版本图书馆CIP数据核字(2011)第084835兮 责任缟辑:栾大成 费任校对:徐俊伟 费任印制:杨艳 出版发行:清华大学出坂 地址:北京清华大学学研大厦A座 httpifwww.tup.com.cr 社总机:010-62770 邮购:010-62786544 投稿与读者服务:010-62795954, jsijc(a tup. tsinghua. 质量反惯:010-62772015, zhiliang(a tup. tsinghua.edu 印刷者:北京鑫丰华 装订者:北京国马印明厂 开本:188X260印张:29插页字数:55字 版次:2011年6月第1版 印次:2011年8月第2次印刷 印数:5001-10000 产品编号 刖目 本书起因 大家好!我是《大话设计模式》2008年初出版)的作者,三年来,承蒙广大读 者的厚爱,《大话设计模式》取得了较大的成功。仅在当当网,截止本文写作时,就已 经有1073次评论,70s次S星评价,位居五星图书榜计算机/网络类的累计总榜 名。此书已经成为国内原创计算机类图书最畅销的书籍之 对于这样一个自己軎欢做、可以做得好,而且已经得到了市场广泛认可,为很多 朋友提供帮助的事情,我没有理由不去继续做下去。这就是我准备再写书的原因 我曾做过调查,数据结构的学习者大多都有这样的感慨:数据结构很重要,一定 要学好,但数据结枸比较抽象,有些算法理解起来很困难,学得很累。可我更希望传 达这样的信息:数据结构非常有趣,很多算法是智意的结品,学习它是去感受计算机 编程技术的魅力,在理解掌握它的同时,整个过程都是一种愉悦的精神感受,而非枯 燥乏味的一门课程。因此我决定写作一本关于数据结构有趣的书 不过现实总比理想来得更”"现实”,要想把书写好,谈何容易,我需要突破很多困 难……瞎!不管如何,现在您看到了本书,那就说明我已经克服了困难战胜了自己 希望您可以軎欢上这本书。 本书定位 本书的定位就是一本适合读者自学数据结构的书籍,它有区别于教材,希望给大 家另一种阅读体验 通常讲解数据结构的图书都是以教材的方式呈现。在写作前,我购买或在图书馆 借阅了十几本非常好的数据结构相关教材用来为写作本书做准备。但经过认真阅读 后,我发现,它们大多不是一本好的*自学“读物 我没有轻视这些好书的意思,不过教材和自学读物,所面向的读者是完全不同 好的教材应该是提纲挈领、重点突出,一定要留出思考的空间,否则就没必要再 听老师上课了。很多内容的讲解是由老师在课堂完成,教材中有练习、课后习题、思 因构 考題等,这些大多可以通过老师来解答。比如我们中学时的语文、数学课本,很薄的 本书通常要用一学期、甚至一年的时间来学习,这就是因为它们是教材而不是自学 读物。如果是小说,可能一两天就读完了 好的自学读物的目标是让初学者·独自”全盘掌握知识,需要强调·独 词,这就说明读者在阅读时,是完全依靠自己的力最来向未知发出挑战,因此书中内 容,要么不写,写了就应该写透,如果读者在阅读时总是疑感重重,那么这本书就有 很大的问题了 我也就是在基于这样的认识,决心将《大话数据结构》真正写成一本关于数据结 构和算法的自学读物来展开写作的 本书特色 1.趣味引导 大部分的编程类图书,在内容上基本都是直奔主题。但是尼采曾说过:“人们无法 理解他没有经历过的事情。’换句话说,我们只接受过去早已理解的事物相关的信息 这是一种比较学习过程,在这个过程中,大脑寻找每条信息之间的联系。所以教育专 家普遍认为,吸引学生的注意力,比较好的办法是用他们比较熟知的知识开始。 因此在本书中,我会用一个故事、一个趣味题同、一部电影的介绍等形式来作为 每一章甚至很多小节的开头,选择的内容也多多少少与要讲的主题内容相关。这并不 是多余,而是有意为之。事实上,这样的形式在我的前一本书中已经得到了普遍认 2.图文并茂 西方有句谚语,“ A pieture is worth a thousand words.一图值干言)*。用上千个 字描述不明白的东西,很可能一张图就能解释清楚 我非常认可这个观点,所以本书虽没有达到每一页都有图,但基本做到了绝大部 分讲解都有相关图示,关键算法更是通过多图逐步分解剖析,尽管这带来了写作上的 难度,但却可以达到较好的效果。毕竟,读者通过本书开始学习数据结构时,要从 无所知或略知一二到完全理解,甚至掌握应用,是需要一个比较艰苦的过程,用大最 的图示可以减少这个过程的长度 我在写作中尽S摒弃了传统数据结枃教材的*重理论思想而轻代码讲解”的作 前言 在准籥数据结构写作时我发现,很多教材对败据结构理论和算法设计思想讲得比 较好,可一到实际代码时,有的把代码貼出来加少量注释,有的直接用伪代码形式 这对于上课的学生还好,毕竞有老师在课當中去详解代码编写原理,可是对于初学数 据结构和算法的自学者而宫,如果书中不去解释代码某些细节为什么那样编写的原 因,甚至代码根本不可能在某个编译器中运行通过,其挫折感是很强烈的。比如即使 理解了图结枃中的最短路径求解原理,也可能无法写出最短路径的算法 我把代码在运行过程中变量的变化煦入到整个算法设计思想的讲解中,配合相应 的示意图,会帮助大家更加容易理解算法的实质。这种讲解模式在本书的第6,7 8.9章的很多复杂算法中有具体体现,越是复杂的代码越是讲解细致。这算是本书的 个特色,希望对读者有帮助。 4形式新颖 我把本书的内容虚构成了一个老师上课的场景,所有内容都通过这位老师表达出 来,书中的文字非常口语化,这样做的目的是为了更加直观地让读者感觉,自己是在 习,是在上课。有人可能会说,现在的课堂大都是让人昏昏欲睡,把读者带入上课 场景,不是更加让读者犯图吗?我觉得如果你的学习经历中听过一些优秀老师的课 你就不会下这样的结论。好的老师讲课,是可以做到引人入胜的 有人可能会问,我为什么不用《大话设计模式》中的对话形式,而采用讲课形式 呢?这是对败据结构这门学问的特点考虑的。设计模式主要都是思想体现,通常会仁 者见仁、智者见智,用对话展开比较容易;而数据结构中更多的是定义、术语、经典 算法等,这些公认的知识,可讨论的地方井不多,更多的是需要把它讲清楚。让两个 人在一起讨论某个设计模式的优缺点,会非常合适,而讨论数据结构定义的好坏,就 没有太大意义了,不如让一个老师告诉学生数据结构的定义好在哪里更符合实际·因 此用传统的讲课形式会好一些 另外,本书没有习题,有思考的題目也一定会给出某种答案。但本书每个复杂知 识点的末尾,都会提供另一本书的进一步阅读建议。这也是基于它是一本自学读物的 原则。读者阅读本书可能是任何时间任何地方,如果书中存在没有解答的习题,碰到 了困难是没法及时找到老师来帮助的,因此本书尽tt避免让读者有这样的困感存在 如果需要练习的同学,我觉得还是应该考虑再去买本习题集来学习。学习败据结构和 算法,做题和上机写代码非常有必要,从这个角度也说明,阅读完本书其实也只是完 成入门而已 本书既然是以老师上课的形式来进行,那就免不了要融入一名教师除了投业解惑 大话数据结构 以外,还要传达一些个人价值观的体现。书中很多细微处,如对某位科学家的尊敬 对某个算法的推崇、对勤奋励志故事的讲述等都在表达着一个老师向学生传递真 善、美的意愿。我始终认为,读者拿到的虽然只是一本没有表情.不会说话的书,但 其实也是在隔空与另一个朋友交流。人与人的交流不可能只是就事论事,一定会有情 感的沟通,这种情感如果能产生共鸣、达成互信,就会让事情(比如学习数据结构与 算法这件事)本身更容易理解和接受 本书内容 本书主要是按照教育部关于计算机专业数据结构课程大纲的要求略微增减来组织 内容的。 主要包括:数据结构介绍,算法推导大0阶的方法,线性表结构的介绍,顺序结 构与链式结构差异,栈与队列的应用,串的朴素模式匹配、KMP模式匹配算法,树结 构的介绍,二叉树前中后序遍历,线索二叉树,赫夫曼树及应用,图结构的介绍,图 的深度、广度遍历,最小生成树两种算法,最短路径两种算法,拓扑排序与关键路径 算法,査拽应用的相关介绍,折半查找、插值查找、斐波那契查找等静态査找,稠密 索引、分块索引、倒排索引等索引技术,二叉排序树、平衡二叉树等动态查找, 树、B+树技术,散列表技术,排序应用的相关介绍,冒泡、选择、插入等简单排序 希尔、堆、归并、快速等改进排序,各位排序算法的对比等 本书读者 故据结构是计算机软件相关专业的基础课程,几乎可以说,要想从事编程工作 无论你是否是科班出身,都不可以绕过这部分知识。因此,适合阅读本书的读者非常 广泛,包括在读的本专科、中专职高技校等计算机专业学生、想转行做开发的非专业 人员、欲考计算机研究生的应届或在职人员,以及工作后需要补学或温习数据结构和 算法的程序员等各类读者 本书对读者的技术背景要求比较低,只要是学过一门高级编程语言,例如C C艹+、Java.C#、VB等就可以开始阅读本书。不过由于当中涉及到比较复杂的算法知 识,需要读者有一定的数学修养和逻辑思维能力,否则可能书籍的后半部分阅读起来 会比较吃力 本书研读方法 事实上,任何有难度的知识和技巧,都不是那么容易被掌握的。我尽管已经朝 通俗易懂的方向努力,可有些数据结构,特別是经典算法,是几代科学家的智想结 品,因此要掌握它们还是需要读者的全力投入 美国畅销书《如何阅读一本书》中提到*阅读可以是一件主动的事,阅读越主 动,效果越好,聿同样的书给背景相近的两个人阅读,一个人却比另一个人从书中得 到了更多,这是因为,首先在于这人的主动,其次,在于他在阅读中的每一种活动都 参与了更多的技巧。这两件事是息息相关的。阅读是一个ft杂的活动,就跟写作一 样,包含了大量不同的活动。要达成良好的阅读,这些活动都是不可或缺的。一个人 越能良好运作这些活动,阅读的效果也就越好 我当然希望读者在阅读本书后收获巨大,但这显然是厢悄愿,要想获得更多 您可能也需要付出类似我写作一样的力气来阅读,例如摘抄文字、眉批心得、稿纸演 算、代码输入电脑,以及您自己在编程工作中的运用等。这些相应活动的执行,将会 您得到巨大的收获 作为作者,建议本书的研读方法为 ■复习C语言的基础知识。如果你掌握的是別的语言也不要紧,适当了解一些 C语言和你掌握的編程语言的错法差异还是有必要的,甚至将本书代码改造 另一种语言本身就是一种非常好的学习方法 ■阅读第一遍时,建议从头至尾进行。如果你对前面的知识有足够了解,当然 可以跳过直接阅读后面的章节。不过若要学习一门完整的知识并形成体系 通读本书,还是最好的学习方 ■阅读时,摘抄是非常好的习惯。*最淡的墨水也胜于最强的记忆r有不少读 者会认为摘抄了将来也不会再去看,有什么必要,但其实在写字的过程就是 大脑学习的过程,写字在减缓你阅读的速度,从而让你更好地消化阅读的内 容。相信大家都能理解,”囵吞枣*和 品味的差异,学习同样如 阅读每一章时,特别是在阅读算法的推导过程时,一定要在电脑中运行代码 (本书源码的下载地址可以到http://d723.cnbbgs.com中的《大话败据结构相 关主题》中找到),了解代碑的运行过程。本书的很多算 法都做到了逐行讲 解,但单纯阅读可能真的很难达到理解的程度(这是纸质书无法克服的缺 陷),需要你通过开发工具调试,并设置断点和逐行执行,井参照书中的讲 解,观察变量的变化情况来理解算法的編写原理 话 阅读完每一章时,一定要在理解基础上记忆一些关键东西。最佳的效果就是 你可以不看书也做到一点不铕地默写出相关算法 阅读完每一章时,一定要适当练习。本书没有提供练习题,但市场上相关的 數据结构习题集比比皆是,可以选择尝试。另外互联网上也可以获得足够的 习题来给你练习。练习的目的是为了检測自己是否真的完全理解了书中的内 容。事实上很多时候,阅读中的人们只是自我感觉理解,而井非真正的明 学习不可能一蹴而就,数据结构和算法如果通过一本书就可以掌握,那本身 就是笑话。本书附录提供了本书写作时的参考书目,基本都是最优秀的数据 结构或相关的中文书籍各有侧重,建议大家可以适当地阅读 在之后的编程学习和工作中,尽量把已经学到的数据结构和算法知识运用到 现实开发中。遗忘时翻阅本书回顾相关内容,最终达到精通数据结构和相关 算法的境界 编程语言说明 本书是用c语言編写,基于C90(IsoC)的标准。读者可以选择任何一款基于 C90标准的C语言开发工具或更高版本的开发工具来学习本书中的代 本人一直习惯于用 visual studio2008作为开发工具,因此在写作此书时,也是用 此工具的Ⅴ isual c++来编译调试代码,一切都相安无事,但写作完成后,考虑到不同 读者应用开发工具的习惯不同,最终在编辑的建议下,决定提供一份可在C90标准的 C语言开发环境中編译通过的代码,结果发现错误百出 例如C90标准的注释要求是7*注释文字*/“而不允许是//注释文字”:要求 变廢声明必须要在函数的最前面,只能是inti;for(i=0;i<n;i++) 而不允许如 for(inti=0.i<n;i++)"这样的方式:再比如C++中函数的参数可以传递如“void CreatebiTree( BiTree&T)*的地址变最,但在C语言中,只能传递如“void Createbitre( bitree*T)"的指针变彩。因此当你看到书中的有些代码到处都是“” 出于为了让代码可以在低端編译环境通过的考虑,牺牲一些代码的简捷性和优雅 性也是无可奈何和必要的。最终我将书中全部代码都改成C90标准的代码 C语言初学者可能会因为刚接触编程语言,特别是对指针的理解不深,而担心阅 读困难。我个人感觉,单纯学习指针是很难理解它的真正用途和好处,而通过学习数

...展开详情
试读 127P 大话数据结构_带标签_高清文字版
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
chen18435162156 有错别字,代码部分乱码
2019-07-22
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
  • GitHub

    绑定GitHub第三方账户获取
关注 私信
上传资源赚积分or赚钱
最新推荐
大话数据结构_带标签_高清文字版 12积分/C币 立即下载
1/127
大话数据结构_带标签_高清文字版第1页
大话数据结构_带标签_高清文字版第2页
大话数据结构_带标签_高清文字版第3页
大话数据结构_带标签_高清文字版第4页
大话数据结构_带标签_高清文字版第5页
大话数据结构_带标签_高清文字版第6页
大话数据结构_带标签_高清文字版第7页
大话数据结构_带标签_高清文字版第8页
大话数据结构_带标签_高清文字版第9页
大话数据结构_带标签_高清文字版第10页
大话数据结构_带标签_高清文字版第11页
大话数据结构_带标签_高清文字版第12页
大话数据结构_带标签_高清文字版第13页
大话数据结构_带标签_高清文字版第14页
大话数据结构_带标签_高清文字版第15页
大话数据结构_带标签_高清文字版第16页
大话数据结构_带标签_高清文字版第17页
大话数据结构_带标签_高清文字版第18页
大话数据结构_带标签_高清文字版第19页
大话数据结构_带标签_高清文字版第20页

试读结束, 可继续阅读

12积分/C币 立即下载 >