• 大话数据结构 溢彩加强版
  • 大话数据结构 溢彩加强版
  • 大话数据结构 溢彩加强版
  • 大话数据结构 溢彩加强版
  • 大话数据结构 溢彩加强版
21年品牌 40万+商家 超1.5亿件商品

大话数据结构 溢彩加强版

全新正版 假一赔十 可开发票

81.78 6.9折 119 全新

库存70件

北京东城
认证卖家担保交易快速发货售后保障

作者程杰

出版社清华大学出版社

ISBN9787302564713

出版时间2020-12

装帧平装

开本16开

定价119元

货号1202157208

上书时间2024-09-02

轻阅书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
"程杰,一个被读者誉为很适合写IT技术书的家伙。
    著有 《大话设计模式》(简体版销量破25万册、繁体版印刷12次,开创了一种适合国人阅读的趣味讲解IT知识的风格与模式)。
    作者参与过政府、证券、游戏、交通等多种行业的软件开发及项目管理工作,也曾做过软件培训的教师,目前从事教育类APP/微信小程序的开发与运营。因为有过两年半高中数学教学的独特经历,使得其书作当中处处以初学者视角考虑和分析问题,成为了当前很受欢迎的IT技术图书作者之一。"

目录
第1章数据结构绪论1

1.1开场白2

1.2你数据结构怎么学的3

1.3数据结构起源4

1.4基本概念和术语5

1.4.1数据5

1.4.2数据元素6

1.4.3数据项7

1.4.4数据对象7

1.4.5数据结构7

1.5逻辑结构与物理结构8

1.5.1逻辑结构8

1.5.2物理结构9

1.6数据类型11

1.6.1数据类型定义11

1.6.2抽象数据类型12

1.7总结回顾13

1.8结尾语14

第2章算法15

2.1开场白16

2.2数据结构与算法的关系16

2.3两种算法的比较17

2.4算法定义18

2.5算法的特性19

2.5.1输入输出19

2.5.2有穷性19

2.5.3确定性20

2.5.4可行性20

2.6算法设计的要求20

2.6.1正确性21

2.6.2可读性21

2.6.3健壮性21

2.6.4时间效率高和存储量低22

2.7算法效率的度量方法22

2.7.1事后统计方法22

2.7.2事前分析估算方法23

2.8函数的渐近增长25

2.9算法时间复杂度27

2.9.1算法时间复杂度定义27

2.9.2推导大O阶方法28

2.9.3常数阶28

2.9.4线性阶29

2.9.5对数阶29

2.9.6平方阶29

2.10常见的时间复杂度31

2.11最坏情况与平均情况32

2.12算法空间复杂度33

2.13总结回顾34

2.14结尾语35

第3章线性表37

3.1开场白38

3.2线性表的定义39

3.3线性表的抽象数据类型41

3.4线性表的顺序存储结构43

3.4.1顺序存储定义43

3.4.2顺序存储方式43

3.4.3数据长度与线性表长度的区别44

3.4.4地址计算方法45

3.5顺序存储结构的插入与删除46

3.5.1获得元素操作46

3.5.2插入操作46

3.5.3删除操作47

3.5.4线性表顺序存储结构的优缺点49

3.6线性表的链式存储结构49

3.6.1顺序存储结构不足的解决办法49

3.6.2线性表链式存储结构定义50

3.6.3头指针与头结点的异同52

3.6.4线性表链式存储结构代码描述52

3.7单链表的读取53

3.8单链表的插入与删除54

3.8.1单链表的插入54

3.8.2单链表的删除56

3.9单链表的整表创建58

3.10单链表的整表删除60

3.11单链表结构与顺序存储结构的优缺点61

3.12静态链表62

3.12.1静态链表的插入操作64

3.12.2静态链表的删除操作65

3.12.3静态链表的优缺点67

3.13循环链表67

3.14双向链表70

3.15总结回顾72

3.16结尾语73

第4章栈与队列75

4.1开场白76

4.2栈的定义76

4.2.1栈的定义76

4.2.2进栈出栈变化形式78

4.3栈的抽象数据类型78

4.4栈的顺序存储结构及实现79

4.4.1栈的顺序存储结构79

4.4.2栈的顺序存储结构——进栈操作80

4.4.3栈的顺序存储结构——出栈操作81

4.5两栈共享空间81

4.6栈的链式存储结构及实现83

4.6.1栈的链式存储结构83

4.6.2栈的链式存储结构——进栈操作84

4.6.3栈的链式存储结构——出栈操作85

4.7栈的作用85

4.8栈的应用——递归86

4.8.1斐波那契数列的实现86

4.8.2递归的定义88

4.9栈的应用——四则运算表达式求值89

4.9.1后缀(逆波兰)表示法的定义89

4.9.2后缀表达式的计算结果90

4.9.3中缀表达式转后缀表达式92

4.10队列的定义93

4.11队列的抽象数据类型94

4.12循环队列95

4.12.1队列顺序存储的不足95

4.12.2循环队列的定义96

4.13队列的链式存储结构及实现99

4.13.1队列的链式存储结构——入队操作100

4.13.2队列的链式存储结构——出队操作100

4.14总结回顾101

4.15结尾语102

第5章串103

5.1开场白104

5.2串的定义104

5.3串的比较105

5.4串的抽象数据类型107

5.5串的存储结构108

5.5.1串的顺序存储结构108

5.5.2串的链式存储结构109

5.6朴素的模式匹配算法110

5.7KMP模式匹配算法113

5.7.1KMP模式匹配算法的原理113

5.7.2next数组值的推导116

5.7.3KMP模式匹配算法的实现117

5.7.4KMP模式匹配算法的改进119

5.7.5nextval数组值的推导120

5.8总结回顾122

5.9结尾语122

第6章树125

6.1开场白126

6.2树的定义126

6.2.1结点的分类127

6.2.2结点间的关系128

6.2.3树的其他相关概念129

6.3树的抽象数据类型129

6.4树的存储结构130

6.4.1双亲表示法130

6.4.2孩子表示法133

6.4.3孩子兄弟表示法136

6.5二叉树的定义137

6.5.1二叉树的特点139

6.5.2特殊二叉树140

6.6二叉树的性质142

6.6.1二叉树的性质1142

6.6.2二叉树的性质2143

6.6.3二叉树的性质3143

6.6.4二叉树的性质4144

6.6.5二叉树的性质5144

6.7二叉树的存储结构145

6.7.1二叉树的顺序存储结构145

6.7.2二叉链表146

6.8遍历二叉树147

6.8.1二叉树的遍历原理147

6.8.2二叉树的遍历方法148

6.8.3前序遍历算法150

6.8.4中序遍历算法153

6.8.5后序遍历算法156

6.8.6推导遍历结果156

6.9二叉树的建立158

6.10线索二叉树159

6.10.1线索二叉树的原理159

6.10.2线索二叉树结构的实现162

6.11树、森林与二叉树的转换165

6.11.1树转换为二叉树166

6.11.2森林转换为二叉树167

6.11.3二叉树转换为树168

6.11.4二叉树转换为森林169

6.11.5树与森林的遍历170

6.12哈夫曼树及其应用171

6.12.1哈夫曼树171

6.12.2哈夫曼树的定义与原理173

6.12.3哈夫曼编码176

6.13总结回顾177

6.14结尾语178

第7章图181

7.1开场白182

7.2图的定义182

7.2.1各种图的定义183

7.2.2图的顶点与边间的关系185

7.2.3连通图的相关术语187

7.2.4图的定义与术语总结189

7.3图的抽象数据类型190

7.4图的存储结构191

7.4.1邻接矩阵192

7.4.2邻接表195

7.4.3十字链表198

7.4.4邻接多重表199

7.4.5边集数组201

7.5图的遍历202

7.5.1深度优先遍历203

7.5.2广度优先遍历205

7.6最小生成树208

7.6.1普里姆(Prim)算法209

7.6.2克鲁斯卡尔(Kruskal)算法213

7.7最短路径218

7.7.1迪杰斯特拉(Dijkstra)算法220

7.7.2弗洛伊德(Floyd)算法225

7.8拓扑排序229

7.8.1拓扑排序介绍229

7.8.2拓扑排序算法230

7.9关键路径234

7.9.1关键路径算法的原理236

7.9.2关键路径算法237

7.10总结回顾242

7.11结尾语243

第8章查找245

8.1开场白246

8.2查找概论247

8.3顺序表查找249

8.3.1顺序表查找算法249

8.3.2顺序表查找优化250

8.4有序表查找251

8.4.1折半查找251

8.4.2插值查找253

8.4.3斐波那契查找255

8.5线性索引查找257

8.5.1稠密索引258

8.5.2分块索引258

8.5.3倒排索引260

8.6二叉排序树262

8.6.1二叉排序树的查找操作264

8.6.2二叉排序树的插入操作266

8.6.3二叉排序树的删除操作267

8.6.4二叉排序树总结272

8.7平衡二叉树(AVL树)273

8.7.1平衡二叉树的实现原理275

8.7.2平衡二叉树的实现算法278

8.8多路查找树(B树)284

8.8.12-3树285

8.8.22-3-4树289

8.8.3B树290

8.8.4B树292

8.9散列表查找(哈希表)概述294

8.9.1散列表查找定义294

8.9.2散列表查找步骤295

8.10散列函数的构造方法296

8.10.1直接定址法297

8.10.2数字分析法297

8.10.3平方取中法298

8.10.4折叠法298

8.10.5除留余数法298

8.10.6随机数法299

8.11处理散列冲突的方法300

8.11.1开放定址法300

8.11.2再散列函数法302

8.11.3链地址法302

8.11.4公共溢出区法302

8.12散列表查找的实现303

8.12.1散列表查找的算法实现303

8.12.2散列表查找的性能分析305

8.13总结回顾305

8.14结尾语306

第9章排序309

9.1开场白310

9.2排序的基本概念与分类310

9.2.1排序的稳定性311

9.2.2内排序与外排序312

9.2.3排序用到的结构与函数313

9.3冒泡排序314

9.3.1最简单排序的实现314

9.3.2冒泡排序算法315

9.3.3冒泡排序优化316

9.3.4冒泡排序复杂度分析317

9.4简单选择排序318

9.4.1简单选择排序算法318

9.4.2简单选择排序复杂度分析319

9.5直接插入排序320

9.5.1直接插入排序算法320

9.5.2直接插入排序复杂度分析322

9.6希尔排序323

9.6.1希尔排序原理324

9.6.2希尔排序算法325

9.6.3希尔排序复杂度分析328

9.7堆排序329

9.7.1堆排序算法331

9.7.2堆排序复杂度分析337

9.8归并排序337

9.8.1归并排序算法338

9.8.2归并排序复杂度分析343

9.8.3非递归实现归并排序343

9.9快速排序346

9.9.1快速排序算法346

9.9.2快速排序复杂度分析349

9.9.3快速排序优化350

9.10总结回顾354

9.11结尾语357

内容摘要
本书以一个计算机教师的教学过程为场景,讲解数据结构和相关算法的知识。全书以趣味方式来叙述,大量引用各种各样的生活知识来类比,并充分运用全彩色图形语言来解读抽象内容,对数据结构所涉及的一些经典算法做出逐行分析、多算法比较。与同类图书相比,本书内容有趣易读,算法讲解细致深入,是一本非常适合自学的读物。对于学习数据结构来说,难点之一是对相关算法的理解。本书创新性地采用全彩印刷,图表、流程、代码等内容结合色彩来重新进行约定和归纳,使得对一些难以理解的知识点的解析更加清晰顺畅,极大提升了阅读体验。本书主要内容包含:数据结构介绍、算法推导大O阶的方法;顺序结构与链式结构差异、栈与队列的应用;串的朴素模式匹配、KMP模式匹配算法;二叉树前中后序遍历、哈夫曼树及应用;图的深度、广度遍历;最小生成树两种算法、最短路径两种算法;拓扑排序与关键路径算法;折半查找、插值查找、斐波那契查找等静态查找;稠密索引、分块索引、倒排索引等索引技术;二叉排序树、平衡二叉树等动态查找;B树、B+树技术,散列表技术;冒泡、选择、插入等简单排序;希尔、堆、归并、快速等改进排序。本书适合学过一门编程语言的各类读者,包括在读的大中专计算机专业学生、想转行做开发的非专业人员、欲考计算机专业研究生的应届生或在职人员,以及工作后需要补学或温习数据结构和算法的程序员等。

主编推荐
"编辑的话
2008年,一本特立独行的IT技术图书《大话设计模式》横空出世,开创了一种新派技术图书风格,横扫各大排行。
作者程杰并没有满足这个成绩,耗时3年潜心创作了另外一本同样是程序员基础的著作——《大话数据结构》,不出意外地好评如潮。
直到今天,这两本书仍然常驻各大排行。作为本土原创图书,这个成绩简直不可思议——印象里只有国外经典技术图书具备如此强的生命力。
虽然在这十几年里程杰兄未再动笔,但依然与我保持着密切联系。非常荣幸的是,在这本新作中,我依然是他的编辑。
十几年来,IT技术已经有了翻天覆地的变化,当年的桌面程序基本都迁移到了当前的互联网和移动端上,以至人工智能、深度学习,开发语言也从当初C、Java为主力语言变成如今包治百病的Python,我作为一个IT编辑,回顾起来其实还挺有意思的。
关于《大话数据结构【溢彩加强版】》的代码语言,确实跟程杰有过小小的争执,我建议换Python,程杰还是坚持用C。他的理由是:讲解数据结构,还是得用最干净纯粹的通用经典计算机语言,虽然Python很灵动,正是这种灵动,有时在解析数据结构的时候显得不够严肃和“正统”,而程序员的基础必修课,必须要一拳一脚地养成规范的动作习惯。
数据结构在某种程度上和设计模式类似,都是前辈的武功套路。不同的是,设计模式是近几十年很好程序员的智慧结晶,而数据结构是几百上千年无数科学家、数学家的智慧沉淀,具有更加深厚的背景。
大家知道,程序是利用计算机的高速运算能力来协助我们处理一些需要海量运算得出结果的问题,花哨的界面和良好的用户体验背后,是无数计算机强大的算力得出我们需要的结果——无论是气象预报还是扫脸支付。
一台计算机的CPU运算能力是固定的,只会机械地接收程序的指令,所以,算法的优劣就决定了程序设计水平的高低(关于计算机硬件的运算原理和流程,这里推荐一《大话数据结构【溢彩加强版】》——《大话计算机》【清华大学出版社】)。举个简单的例子,数据库性能优化这个工作,收费是按照小时来计算的,有个段子,真实性无从考证:水平高的每小时可以达到30万美金。为什么会值这么多钱?有价值吗?本质上讲这就是算法的力量,使用优秀的算法可以在为企业节省海量的硬件投入同时带来巨大的效率提升——比如之前需要100台小型机,优化之后只需要10台就够了;之前生成一个数据需要1分钟出来结果,优化之后1秒钟就够了……这对于企业来说,节省的成本可就远远不止投入的几十上百万元的优化费用了。当然,数据库优化有很多算法优化之外的技术,但是如果优化结果发生了质变,那一定主要是算法的功劳。
国内外优秀的程序员很多是数学专业出身,也在一定程度上说明了这个问题。很多程序员被戏称为“码农”——一种流水线机械作业的工种,至今此工种仍大量存在。可以预见的是,随着软件开发集成度的提高和AI技术的发展,“码农”会大量减少,未来的软件开发需要的是“软件架构师”和“算法工程师”,无论走哪条路线,算法都是重中之重。可以说,算法基础不牢靠,职业生涯不牢靠。(关于这个话题,再推荐一《大话数据结构【溢彩加强版】》——《大话软件工程》【清华大学出版社】)
我们的程序员因为在受教育的过程中,由于种种原因,数据结构和算法的基本功通常要差一些,等从业以后想再补课又缺乏好的,或者说适合自学的教材。数据结构不是说没有优秀教材,比如《数据结构》(严蔚敏清华版)、《算法导论》(机工版)这样的经典著作我们绝对不能说不好,但是作为自学,实在是有点难啃。
《大话数据结构【溢彩加强版】》延续了前作轻松调侃的风格,采用了师生对话的方式展开讨论,其中穿插了大量“接地气”的类比案例,帮助大家迅速“开窍”,在我的建议下,程杰精心将《大话数据结构【溢彩加强版】》图表制作成彩色,阅读起来你会发现,不仅仅是养眼,对一些流程、概念的解说,用彩色图表更为精准,学习体验有了质变。

感谢程杰这样的优秀作者真诚地将自己的感悟奉献出来。与作者的用心相比,作为策划编辑付出的劳动就不值得一提了。这里真心希望读者可以从书中找到需要的东西,也希望国内更多高人涌现出来,为读者创作更适合中国人阅读的优秀科技图书。

清华大学出版社
栾大成
"

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP