图书介绍

数据结构C和C++语言描述 第2版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

数据结构C和C++语言描述 第2版
  • (美) Yedidyah Langsam,Moshe J. Augenstein,Aaron M. Tenenbaum著;李化,潇东译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302080682
  • 出版时间:2004
  • 标注页数:541页
  • 文件大小:25MB
  • 文件页数:557页
  • 主题词:数据结构;C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

数据结构C和C++语言描述 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章数据结构入门1

1.1信息和涵义1

目 录1

1.1.1二进制整数和十进制整数2

1.1.2实数3

1.1.3字符串4

1.1.4硬件和软件5

1.1.5实现的概念6

1.1.6示例6

1.1.7抽象数据类型10

1.1.8序列的值定义13

1.1.9变长字符串的ADT表示14

1.1.10 C的数据类型16

1.1.11 C中的指针16

1.1.12 C中的数据结构18

1.2 C中的数组19

1.1.13 练习19

1.2.1数组的抽象数据类型定义20

1.2.2使用一维数组21

1.2.3一维数组的实现23

1.2.4将数组作为参数25

1.2.5 C 中的字符串25

1.2.6字符串操作26

1.2.7二维数组27

1.2.8多维数组29

1.2.9练习231

1.3 C中的结构33

1.3.1结构的实现37

1.3.2联合(Union)38

1.3.3联合的实现41

1.3.4结构参数42

1.3.6有理数44

1.3.5表示其他数据结构44

1.3.7内存的分配和变量的作用域47

1.3.8练习351

1.4 C++中的类53

1.4.1 Rational类53

1.4.2 Rational类的使用54

1.4.3方法的实现56

1.4.4重载61

1.4.5继承61

1.4.6构造函数63

1.4.7练习464

2.1定义和示例65

8.3.3调度的应用65

第2章堆栈65

2.1.1基本操作66

2.1.2示例67

8.3.4 C程序69

2.1.3堆栈的抽象数据类型定义70

2.1.4练习171

2.2用C描述堆栈71

2.2.1 pop操作的实现75

2.2.2测试异常情况76

2.2.3实现push操作77

8.4.2生成森林77

2.2.4练习279

2.3 示例:中缀、后缀和前缀80

2.3.1基本定义和示例80

2.3.2后缀表达式的计算82

2.3.3计算后缀表达式的程序83

6.1.1 效率方面的考虑84

2.3.4程序的局限性85

2.3.5中缀表达式转换为后缀表达式86

6.1.3排序的效率87

2.3.6将中缀表达式转换为后缀表达式的程序90

2.3.7用C++模板实现的堆栈92

2.3.8练习397

3.1.1阶乘函数100

3.1 递归定义和递归过程100

第3章递归100

3.1.2自然数的乘法102

3.1.3斐波纳契数列103

3.1.4对分查找104

3.1.6练习1107

3.1.5递归定义或算法的特点107

3.2 C中的递归108

3.2.1用C实现阶乘108

3.2.2用C实现斐波纳契数列111

3.2.3用C实现对分查找113

3.2.4递归链114

3.2.5代数表达式的递归定义115

3.2.6练习2118

3.3编写递归程序120

3.3.1汉诺塔问题121

3.3.2使用递归将前缀表达式转换为后缀表达式125

3.3.3练习3129

3.4递归的模拟131

3.4.1从函数中返回133

3.4.2递归函数的实现134

3.4.3阶乘的模拟134

3.4.4优化模拟例程138

3.4.5消除goto语句140

3.4.6模拟汉诺塔问题142

3.4.7练习4147

3.5递归的效率149

第4章队列和链表151

4.1 队列及其顺序表示151

4.1.1队列的抽象数据类型定义152

4.1.2队列的C语言实现152

4.1.3 insert操作156

4.1.4优先队列157

4.1.5用数组实现的优先队列157

4.1.6练习1159

4.2链表160

4.2.1从链表中插入和删除结点161

4.2.2堆栈的链表实现164

4.2.3 getnode和freenode操作165

4.2.4队列的链表实现166

4.2.5链表数据结构167

4.2.6链表操作的例子169

4.2.7优先队列的链表实现171

4.2.8头结点171

4.2.9练习2172

4.3 C中的链表173

4.3.1链表的数组实现173

4.3.3动态变量的分配和释放176

4.3.2数组实现的局限性176

4.3.4使用动态变量实现的链表180

4.3.5用链表实现的队列181

4.3.6 C中链表操作的例子183

4.3.7非整数链表和非齐次链表184

4.3.8数组实现和动态实现链表的比较186

4.3.9头结点的实现186

4.3.10练习3186

4.4示例:用链表进行模拟188

4.4.1模拟进程188

4.4.2数据结构189

4.4.3模拟程序190

4.4.4练习4193

4.5其他链表结构195

4.5.1循环链表195

4.5.2用循环链表表示堆栈196

4.5.4循环链表的基本操作197

4.5.3用循环链表表示队列197

4.5.5约瑟夫问题199

4.5.6头结点200

4.5.7使用循环链表实现长正整数的加法201

4.5.8双向链表203

4.5.9使用双向链表实现长整数的加法205

4.5.10练习5209

4.6 C++中的链表210

5.1 二叉树214

第5章树214

5.1.1 二叉树中的操作218

5.1.2二叉树的应用219

5.1.3练习1223

5.2.1 二叉树的结点表示224

5.2二叉树的表示224

5.2.2内部结点和外部结点227

5.2.3二叉树的隐式数组表示227

5.2.4选择一个二叉树表示231

5.2.5二叉树遍历的C语言表示232

5.2.6线索化二叉树234

5.2.7使用father字段的遍历238

5.2.8异构二叉树240

5.2.9练习2241

5.3 示例:哈夫曼算法243

5.3.1哈夫曼算法245

5.3.2 C程序247

5.3.3练习3250

5.4将表表示为二叉树251

5.4.1寻找第k个元素252

5.4.2删除元素254

5.4.3用C语言实现用树表示的表257

5.4.4构建一个用树表示的表259

5.4.5回顾约瑟夫问题261

5.5树及其应用262

5.4.6练习4262

5.5.1 树的C语言表示264

5.5.2树的遍历267

5.5.3用树来表示广义表达式268

5.5.4对表达式树求值270

5.5.5构建树272

5.5.6练习5274

5.6示例:游戏树275

第6章排序282

6.1 背景282

6.1.2符号O285

6.1.4练习1289

6.2 交换排序290

6.2.1 冒泡排序290

6.2.2快速排序292

6.2.3快速排序的效率298

6.2.4练习2300

6.3选择排序以及树排序301

6.3.1直接选择排序302

6.3.2二叉树排序303

6.3.3堆排序305

6.3.4作为优先级队列的堆306

6.3.5使用堆进行排序308

6.3.6堆排序的过程310

6.3.7练习3311

6.4插入排序312

6.4.1简单插入312

6.4.2希尔排序313

6.4.3地址计算排序316

6.4.4练习4318

6.5 归并排序以及基数排序320

6.5.1 归并排序320

6.5.2 Cook-Kim算法323

6.5.3基数排序323

6.5.4练习5327

第7章搜索329

7.1基本搜索技术329

7.1.1 作为抽象数据类型的目录330

7.1.2算法符号331

7.1.3顺序搜索331

7.1.4顺序搜索的效率333

7.1.5重新排序链表以最大化搜索效率334

7.1.7使用索引的顺序搜索335

7.1.6在有序表中进行搜索335

7.1.8二叉树搜索338

7.1.9插值搜索339

7.1.10练习1340

7.2树搜索342

7.2.1 在二叉搜索树中插入元素343

7.2.2在二叉搜索树中删除元素346

7.2.3 二叉搜索树操作的效率348

7.2.4不均匀的二叉搜索树的效率350

7.2.5最佳搜索树351

7.2.6平衡二叉树353

7.2.7练习2360

7.3.1 多路搜索树362

7.3广义搜索树362

7.3.2在多路树中进行搜索364

7.3.3 实现多路树365

7.3.4遍历多路树366

7.3.5在多路搜索树中进行插入368

7.3.6 B树372

7.3.7 B树插入算法377

7.3.8计算father和index380

7.3.9在多路搜索树中进行删除383

7.3.10多路搜索树的效率387

7.3.11 改进B树390

7.3.12 B+树392

7.3.13数字搜索树393

7.3.14 Trie396

7.3.15练习3396

7.4散列397

7.4.1使用开放寻址来解决散列冲突399

7.4.2从散列表删除项401

7.4.3 再散列方法的效率402

7.4.4散列表重新排序404

7.4.5 Brent方法405

7.4.6二叉树散列407

7.4.7通过额外的存储空间来获得改进409

7.4.8联合散列412

7.4.9单独链地址法414

7.4.10在外部存储器中进行散列416

7.4.11分离方法418

7.4.12动态散列以及可扩展散列419

7.4.13线性散列423

7.4.14选择散列函数429

7.4.15理想的散列函数430

7.4.16散列函数的通用类434

7.4.17练习4435

第8章图及其应用437

8.1 图437

8.1.1 图的应用439

8.1.2 图的C语言表示440

8.1.3传递闭包442

8.1.4 Warshall算法445

8.1.5最短路径算法446

8.1.6练习1448

8.2 流问题449

8.2.1改进流函数450

8.2.2示例453

8.2.3算法和程序454

8.2.4练习2458

8.3 图的链接表示458

8.3.1 再访Dijkstra算法463

8.3.2组织图结点集合465

8.3.5练习3472

8.4 图的遍历以及生成森林474

8.4.1 图的遍历方法474

8.4.3 无向图以及它们的遍历479

8.4.4深度优先遍历480

8.4.5深度优先遍历的应用483

8.4.6深度优先遍历的效率484

8.4.7广度优先遍历484

8.4.8最小生成树486

8.4.9 Kruskal算法487

8.4.10 Round-Robin算法488

8.4.11练习4488

9.1 广义表490

第9章存储管理490

9.1.1修改表的操作492

9.1.2示例493

9.1.3表的链表表示494

9.1.4表的表示495

9.1.5 crlist操作497

9.1.6表头的用法499

9.1.7释放表结点499

9.1.8 C中的广义表500

9.1.9编程语言和表503

9.1.10练习1504

9.2 自动表管理504

9.2.1引用计数方法505

9.2.2无用信息收集509

9.2.3无用信息收集的算法510

9.2.4收集和压缩515

9.2.6练习2521

9.2.5无用信息收集的变种521

9.3动态存储管理522

9.3.1存储块的压缩523

9.3.2首次匹配、最佳匹配和最差匹配525

9.3.3 首次匹配方法的改进528

9.3.4释放存储块529

9.3.5边界标签方法531

9.3.6 Buddy System533

9.3.7其他的Buddy System538

9.3.8练习3540

热门推荐