图书介绍

数据结构PDF|Epub|txt|kindle电子书版本网盘下载

数据结构
  • (美)马里克,(美)耐尔著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302083290
  • 出版时间:2004
  • 标注页数:676页
  • 文件大小:23MB
  • 文件页数:691页
  • 主题词:数据结构-教材;JAVA语言-程序设计-教材

PDF下载


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

下载说明

数据结构PDF格式电子书版下载

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

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

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

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

图书目录

第1章 软件工程基本原理和Java类1

1.1 软件的生命周期1

目录1

2.1 继承 61

1.2 软件开发阶段2

1.2.1 分析阶段2

1.2.2 设计阶段2

4.4.7 copyList方法 2 13

1.2.3 实现阶段3

4.5.2 删除节点 2 15

1.2.4 测试和调试5

1.3 算法分析:大O表示法6

1.4 用户定义的类12

1.4.1 构造函数14

1.4.2 统一建模语言图15

1.4.3 变量声明和对象实例化16

1.4.4 访问类的成员17

1.4.5 类的内置运算18

1.4.6 赋值运算符和类18

1.4.7 类的作用域20

1.4.8 定义类Clock的构造函数和方法20

1.4.9 拷贝构造函数27

1.4.10 类和方法toString28

1.4.11 类的静态成员29

1.4.12 类的静态变量(数据成员)30

1.4.13 析构函数31

1.4.14 创建自己的包31

1.4.15 多文件程序32

1.4.16 引用this35

1.5 抽象数据类型37

1.4.17 内部类37

1.6 编程示例:糖果机38

1.6.1 问题分析和算法设计38

1.6.2 收银机38

1.6.3 自动售货机41

1.6.4 主程序45

1.7 标识类、对象和操作50

1.8 快速总结50

1.9 练习题52

3.2.2 方法copyList 158

1.10 编程练习58

第2章 继承和异常处理61

2.1.1 在子类中使用超类的方法63

2.1.2 子类与超类的构造函数68

2.1.3 类的受保护成员75

2.1.4 类Object79

2.1.5 超类和子类的对象80

2.1.6 运算符instanceof82

2.2 抽象方法和抽象类86

2.3 聚合87

2.4 异常处理92

2.4.1 Java异常层次结构93

2.4.2 异常层次结构95

2.4.3 已解析的异常和未解析的异常97

2.4.4 处理程序中的异常98

2.4.5 抛出和重新抛出异常103

2.4.6 异常处理技术107

2.4.7 创建自己的异常类108

2.5 编程示例:成绩报告单110

2.5.1 问题分析与算法设计112

2.5.2 主程序125

2.5.3 程序清单128

2.6 快速总结130

2.7 练习题132

2.8 编程练习140

第3章 基于数组的表143

3.1 表元素的类型144

3.1.1 类IntElement145

3.1.2 类StringElement147

3.2 类ArrayListClass149

3.2.1 拷贝构造函数157

3.3 无序表158

3.3.1 搜索160

3.3.2 插入161

3.3.3 删除162

3.3.4 各种表操作的时间复杂度163

3.4 类Vector169

3.5 编程示例:多项式的运算174

3.6 快速回顾185

3.7 练习题186

3.8 编程练习187

第4章 链表190

4.1 链表190

4.1.1 链表的一些属性192

4.1.2 遍历链表194

4.2 链表元素的插入和删除195

4.2.1 插入195

4.2.2 删除198

4.3 构建链表199

4.3.1 正向构建链表200

4.3.2 反向构建链表203

4.4 ADT链表204

4.4.1 链表的长度209

4.4.3 在链表头插入节点209

4.4.2 检索第一个节点和最后一个节点的数据209

4.4.4 在链表尾插入节点210

4.4.5 复制链表211

4.4.6 拷贝构造函数212

4.4.8 类LinkedListClass的定义213

4.5 无序链表213

4.5.1 搜索链表214

4.6 有序链表220

4.6.1 搜索链表222

4.6.2 插入节点222

4.6.3 删除节点227

4.7 双向链表231

4.7.4 链表的长度234

4.7.3 初始化链表234

4.7.2 isEmptyList234

4.7.1 默认构造函数234

4.7.5 输出链表235

4.7.6 反向输出链表235

4.7.7 搜索链表235

4.7.8 第一个和最后一个元素236

4.7.9 插入节点236

4.7.10 删除节点239

4.8 带有头节点和尾节点的链表241

4.9 循环链表242

4.10 编程示例:音像店243

4.11 快速回顾264

4.12 练习题264

4.13 编程练习269

第5章 递归272

5.1 递归的定义272

5.1.2 无穷递归274

5.1.1 直接递归和间接递归274

5.2 使用递归法解决问题275

5.3 编程示例:将十进制数转换为二进制数287

5.4 编程示例:Sierpinski gasket289

5.4.1 问题分析和算法设计290

5.4.2 完整的程序清单291

5.5 使用递归还是迭代294

5.6 递归和回溯:8-皇后问题294

5.6.2 n-皇后问题295

5.6.1 回溯295

5.6.3 回溯和4-皇后问题297

5.6.4 8-皇后问题297

5.7 快速回顾301

5.8 练习题302

5.9 编程练习304

第6章 堆栈310

6.1 堆栈310

6.2 StackException类312

6.3 使用数组实现堆栈313

6.3.1 初始化堆栈316

6.3.2 空堆栈317

6.3.3 满堆栈317

6.3.4 入栈317

6.3.5 返回栈顶元素318

6.3.6 出栈319

6.3.7 复制320

6.3.8 构造函数320

6.3.10 CopyStack方法321

6.3.9 拷贝构造函数321

6.4 编程示例:求最高GPA323

6.5 把堆栈实现为链表327

6.5.1 默认构造函数330

6.5.2 初始化堆栈330

6.5.3 入栈331

6.5.4 返回栈顶元素333

6.5.5 出栈333

6.6 由类LinkedListClass派生而来的堆栈335

6.7 堆栈的应用:后缀表达式计算器336

6.7.2 方法evaluateExpression340

6.7.1 主算法340

6.7.3 方法evaluateOpr342

6.7.4 方法printResult345

6.7.5 完整的程序清单345

6.8 后缀表达式计算器:图形用户界面(GUI)347

6.9 消除递归:反向打印链表的非递归算法354

6.10 类Stack359

6.12 练习题361

6.11 快速回顾361

6.13 编程练习365

第7章 队列368

7.1 队列368

7.2 队列的异常类369

7.3 队列的数组实现370

7.4 队列的链表实现380

7.5 从类LinkedListClass派生而来的队列384

7.6 优先队列386

7.7 队列的应用:模拟387

7.7.1 设计队列系统387

7.7.2 客户388

7.7.3 服务器391

7.7.4 服务器表395

7.7.5 等待客户的队列399

7.7.6 主程序401

7.9 练习题408

7.8 快速回顾408

7.10 编程练习412

第8章 搜索算法413

8.1 搜索算法413

8.1.1 顺序搜索414

8.1.2 顺序搜索算法分析415

8.1.3 有序表416

8.1.4 二叉树搜索418

8.1.5 二叉树搜索算法的性能421

8.1.6 将数据项插入有序表422

8.2 基于比较的搜索算法的下限425

8.3 散列算法425

8.3.1 散列函数:示例426

8.3.2 冲突的解决427

8.3.3 冲突的解决:开型寻址法427

8.3.4 二次探测429

8.3.5 删除:开型寻址法431

8.3.6 散列算法:使用二次探测来实现433

8.3.7 冲突的解决:链地址法(开散列方法)435

8.3.8 散列法性能分析436

8.4 快速回顾437

8.5 练习题439

8.6 编程练习441

第9章 排序算法443

9.1 排序算法443

9.2 选择排序:基于数组的表444

9.3 插入排序:基于数组的表449

9.4 插入排序:基于链表的表454

9.5 基于比较的排序算法的下限458

9.6 快速排序:基于数组的表459

9.7 归并排序:基于链表的表464

9.7.1 划分466

9.7.2 归并468

9.7.3 分析:归并排序471

9.8 堆排序:基于数组的表471

9.8.1 构建堆472

9.8.2 分析:堆排序478

9.9 再论优先级队列479

9.9.1 在优先级队列中插入一个元素479

9.9.2 从优先级队列删除一个元素479

9.10 编程示例:选举结果479

9.10.1 问题分析和算法设计481

9.10.2 主程序485

9.10.4 处理投票数据488

9.10.3 对姓名排序488

9.10.5 计算选票数的总和490

9.10.6 打印标题和结果491

9.11 快速回顾495

9.12 练习题495

9.13 编程练习497

第10章 二叉树499

10.1 二叉树499

10.2.2 前序遍历505

10.2.3 后序遍历505

10.2 二叉树的遍历505

10.2.1 中序遍历505

10.2.4 二叉树的实现508

10.3 二叉搜索树514

10.3.1 search方法517

10.3.2 Insert方法518

10.3.3 Delete方法520

10.4 二叉搜索树分析526

10.5.1 非递归的中序遍历算法527

10.5 二叉树的非递归遍历算法527

10.5.2 非递归的前序遍历算法528

10.5.3 非递归的后序遍历算法529

10.6 AVL(平衡)树530

10.6.1 AVL树的插入操作532

10.6.2 AVL树的旋转537

10.6.3 AVL树的删除操作547

10.6.4 AVL树的性能分析548

10.7 编程示例:音像店549

10.8 快速回顾556

10.9 练习题557

10.10 编程练习561

第11章 图562

11.1 图的简史562

11.2 图的定义和符号563

11.3 图的表示方法565

11.3.1 邻接矩阵565

11.3.2 邻接表566

11.4 图的操作567

11.5 图的ADT定义568

11.6 图的遍历571

11.6.1 深度优先遍历571

11.6.2 广度优先遍历573

11.7 最短路径算法575

11.8 最小生成树580

11.9 拓扑排序589

11.10 快速回顾594

11.11 练习题595

11.12 编程练习597

附录A 保留字599

附录B 运算符优先级600

附录C 字符集602

附录D 包和用户定义的类604

附录E Java类619

附录F 针对C++程序员的JAVA介绍645

附录G 参考文献666

附录H 部分习题答案667

热门推荐