数据结构与抽象 Java语言描述 第4版

目录

前言
引言组织数据
序言设计类
P.1封装
P.2说明方法
P.2.1注释
P.2.2前置条件和后置条件
P.2.3断言
P.3Java接口
P.3.1写一个接口
P.3.2实现一个接口
P.3.3接口作为数据类型
P.3.4派生一个接口
P.3.5接口内命名常量
P.4xuan择类
P.4.1标识类
P.4.2CRC卡
P.4.3统一建模语言
P.5重用类
D11章包
1.1什么是包
1.2说明一个包
1.3使用ADT包
1.4像使用自动贩卖机一样使用ADT
1.5ADT集合
1.6Java类库:接口set
Java插曲1泛型
D12章使用数组实现包
2.1使用固定大小的数组实现ADT包
2.1.1类比
2.1.2一组核心方法
2.1.3实现核心方法
2.1.4让实现安全
2.1.5测试核心方法
2.1.6实现更多的方法
2.1.7删除项的方法
2.2使用可变大小的数组实现ADT包
2.2.1可变大小数组
2.2.2包的新实现
2.3使用数组实现ADT包的优缺点
Java插曲2异常
D13章使用链式数据实现包
3.1链式数据
3.2ADT包的链式实现
3.2.1私有类Node
3.2.2类LinkedBag的框架
3.2.3定义一些核心方法
3.2.4测试核心方法
3.2.5方法getFrequencyOf
3.2.6方法contalns
3.3从链中删除一项
3.4有设置和获取方法的类Node
3.5使用链实现ADT包的优缺点
D14章算法的效率
4.1动机
4.2测量算法的效率
4.2.1计数基本操作
4.2.2*优、*差和平均情形
4.3大O表示
4.4描述效率
4.5实现ADT包的效率
4.5.1基于数组的实现
4.5.2链式实现
4.5.3两种实现的比较
D15章栈
5.1ADT栈的规格说明
5.2使用栈来处理代数表达式
5.2.1问题求解:检查中缀代数表达式中平衡的分隔符
5.2.2问题求解:将中缀代数表达式转换为后缀表达式
5.2.3问题求解:计算后缀表达式的值
5.2.4问题求解:计算中缀表达式的值
5.3程序栈
5.4Java类库:类stack
D16章栈的实现
6.1链式实现
6.2基于数组的实现
6.3基于向量的实现
6.3.1Java类库:类Vector
6.3.2使用向量实现ADT栈
D17章递归
7.1什么是递归
7.2跟踪递归方法
7.3返回一个值的递归方法
7.4递归处理数组
7.5递归处理链
7.6递归方法的时间效率
7.6.1countDown的时间效率
7.6.2计算xn的时间效率
7.7困难问题的简单求解方案
7.8简单问题的低劣求解方案
7.9尾递归
7.10间接递归
7.11使用栈来替代递归
Java插曲3再谈泛型
D18章排序简介
8.1对数组进行排序的Java方法的组织
8.2xuan择排序
8.2.1迭代xuan择排序
8.2.2递归xuan择排序
8.2.3xuan择排序的效率
8.3插入排序
8.3.1迭代插入排序
8.3.2递归插入排序
8.3.3插入排序的效率
8.3.4链式结点链的插入排序
8.4希尔排序
8.4.1算法
8.4.2希尔排序的效率
8.5算法比较
D19章更快的排序方法
9.1归并排序
9.1.1归并数组
9.1.2递归归并排序
9.1.3归并排序的效率
9.1.4迭代归并排序
9.1.5Java类库中的归并排序
9.2快速排序
9.2.1快速排序的效率
9.2.2创建划分
9.2.3实现快速排序
9.2.4Java类库中的快速排序
9.3基数排序
9.3.1基数排序的伪代码
9.3.2基数排序的效率
9.4算法比较
Java插曲4再谈异常
D110章队列、双端队列和优先队列
10.1ADT队列
10.1.1问题求解:模拟排队
10.1.2问题求解:计算出售股票的资本收益
10.1.3Java类库:接口Queue
10.2ADT双端队列
10.2.1问题求解:计算出售股票的资本收益
10.2.2Java类库:接口Deque
10.2.3Java类库:类ArrayDeque
10.3ADT优先队列
10.3.1问题求解:跟踪任务分配
10.3.2Java类库:类PriorityQueue
D111章队列、双端队列和优先队列的实现
11.1队列的链式实现
11.2基于数组实现队列
11.2.1循环数组
11.2.2带一个不用位置的循环数组
11.3队列的循环链式实现
11.4Java类库:类AbstractQueue
11.5双端队列的双向链式实现
11.6优先队列的町能实现方案
D112章线性表
12.1ADT线性表的规格说明
12.2使用ADT线性表
12.3Java类库:接口List
12.4Java类库:类ArrayList
D113章使用数组实现线性表
13.1使用数组实现ADT线性表
13.1.1类比
13.1.2Java实现
13.1.3使用数组实现ADT线性袁的效率
D114章使用链式数据实现线性表
14.1链式结点链上的操作
14.1.1在不同的位置添加结点
14.1.2从不同的位置删除鲒点
14.1.3私有方法getNodeAt
14.2开始实现
14.2.1数据域和构造方法
14.2.2添加到线性表的表尾
14.2.3在线性表的给定位置添加力 
14.2.4方法isEmpty和toArray
14.2.5测试核心方法
14.3继续实现
14.4细化实现
14.5使用链实现ADT线性表的效率
14.6Java类库:类LinkedList
Java插曲5迭代器
D115章ADT线性表的迭代器
15.1实现迭代器的方法
15.2独立类迭代器
15.3内层类迭代器
15.3.1链式实现
15.3.2基于教组的实现
15.4为什么迭代器方法在它自己的类中
15.5基于数组实现接门ListIterator
Java插曲6可变及不可变对象
D116章有序表
16.1ADT有序表的规格说明
16.2链式实现
16.2.1方法add
16.2.2链式实现的效率
16.3使用ADT线性表实现
Java插曲7继承和多态
D117章继承和线性表
17.1使用继承实现有序表
17.2设计一个基类
17.3有序表的高效实现
D118章查找
18.1问题
18.2在无序数组中查找
18.2.1无序数组上的迭代顺序查找
18.2.2无序数组上的递归顺序查找
18.2.3顺序查找数组的效率
18.3有序数组上的查找
18.3.1有序数组上的顺序查找
18.3.2有序数组上的二分查找
18.3.3Java类库:方法binarySearch
18.3.4数组上的二分查找的效率425
184无序链上的查找
18.4.1无序链上的迭代顺序查找
18.4.2无序链上的递归顺序查找
18.4.3链上查找的效率
18.5有序链上的查找
18.5.1有序链上的顺序查找
18.5.2有序链上的二分查找
18.6查找方法的xuan掸
Java插曲8再论泛型
D119章字典
19.1ADT字典的规格说明
19.1.1Java接口
19.1.2迭代器
19.2使用ADT字典
19.2.1问题求解:电话号码簿
19.2.2问题求解:字的频度
19.2.3问题求解:字的词汇索引
19.3Java类库:接口Hap
D120章字典的实现
20.1基于数组的实现
20.1.1基于数组的无序字典
20.1.2基于数组的有序字典
20.2链式实现
20.2.1无序链式字典
20.2.2有序链式字典
D121章散列简介
21.1什么是散列
21.2散列函数
21.2.1计算散列码
21.2.2将散列码压缩为散列表的下标
21.3解决冲突
21.3.1开放地址的线性探查
21.3.2开放地址的二次探查
21.3.3开放地址的双散列
21.3.4开放地址的潜在问题
21.3.5拉链法
D122章使用散列实现字典
22.1散列的效率
22.1.1装填因子
22.1.2开放地址法的代价
22.1.3拉链法的代价
22.2冉散列
22.3冲突解决方案的比较
22.4字典的散列实现
22.4.1散列表中的项
22.4.2数据域和构造方法
22.4.3方法getValue、remove和add
22.4.4迭代器
22.5Java类库:类HashMap
22.6Java类库:类HashSet
D123章树
23.1树的概念
23.1.1层次结构
23.1.2树的术语
23.2树的遍历
23.2.1二又树的遍历
23.2.2一般树的遍历
23.3树的Java接口
23.3.1所有树的接口
23.3.2二叉树的接口
23.4二叉树的示例
23.4.1表达式树
23.4.2决策树
23.4.3二叉查找树
23.4.4堆
23.5一般树的示例
23.5.1语法树
23.5.2游戏树
……
D124章树的实现
D125章二叉查找树的实现
D126章堆的实现
D127章平衡查找树
D128章图
D129章图的实现
附录A文档和程序设计风格
附录BJava基础-在线
附录CJava类-在线
附录D从其他类创建类
附录E文件输入和输出-在线
索引

下载地址:https://pan.baidu.com/s/1YthLUgBndR90lsLkaLFupQ

关注微信公众号获取提取码:

  输入:j8kr  获取提取码

数据结构与抽象 Java语言描述 第4版 pdf (内含标签)的更多相关文章

  1. 《数据结构与算法分析-Java语言描述》 分享下载

    书籍信息 书名:<数据结构与算法分析-Java语言描述> 原作名:Data Structures and Algorithm Analysis in Java 作者: 韦斯 (Mark A ...

  2. 读书笔记:《数据结构与算法分析Java语言描述》

    目录 第 3 章 表.栈和队列 3.2 表 ADT 3.2.1 表的简单数组实现 3.2.2 简单链表 3.3 Java Collections API 中的表 3.3.1 Collection 接口 ...

  3. 数据结构(java语言描述)

    概念性描述与<数据结构实例教程>大同小异,具体参考:http://www.cnblogs.com/bookwed/p/6763300.html. 概述 基本概念及术语 数据 信息的载体,是 ...

  4. 数据结构(Java语言描述)-第一章:概述

    第一章 概述 1.0 序言 自己为啥要学数据结构嘞,我觉得主要有以下三个原因: 前段时间在看并发编程时,发现aqs,corrunthashmap等底层都用到了数据结构,主要的有队列,还有链表,学习数据 ...

  5. 【数据结构】之二叉树(Java语言描述)

    有关树的一些基础知识点请参考[这篇文章]. 本文主要记录Java语言描述的二叉树相关的一些操作,如创建.遍历等. 首先,我们需要一个表示树中节点的数据结构TreeNode,代码如下: public c ...

  6. C语言学习书籍推荐《数据结构与算法分析:C语言描述(原书第2版)》下载

    维斯 (作者), 冯舜玺 (译者) <数据结构与算法分析:C语言描述(原书第2版)>内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能.效率以及对运行 ...

  7. 数据结构与算法分析——C语言描述 第三章的单链表

    数据结构与算法分析--C语言描述 第三章的单链表 很基础的东西.走一遍流程.有人说学编程最简单最笨的方法就是把书上的代码敲一遍.这个我是头文件是照抄的..c源文件自己实现. list.h typede ...

  8. 三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述)

    三元组表压缩存储稀疏矩阵实现稀疏矩阵的快速转置(Java语言描述) 用经典矩阵转置算法和普通的三元组矩阵转置在时间复杂度上都是不乐观的.快速转置算法在增加适当存储空间后实现快速转置具体原理见代码注释部 ...

  9. 利用栈实现算术表达式求值(Java语言描述)

    利用栈实现算术表达式求值(Java语言描述) 算术表达式求值是栈的典型应用,自己写栈,实现Java栈算术表达式求值,涉及栈,编译原理方面的知识.声明:部分代码参考自茫茫大海的专栏. 链栈的实现: pa ...

随机推荐

  1. pwn第一周

    源码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> void setbufs() { set ...

  2. spark yarn 提交作业

    spark提交作业命令: ./spark-submit --master yarn --deploy-mode cluster --class com.zjlantone.hive.SparkOper ...

  3. 01_搭建新浪云SAE

    Step1:注册新浪云计算平台用新浪微博登陆新浪云计算平台,网址:http://sae.sina.com.cn/ 登陆成功之后会跳转到安全设置页面,安全设置页面要填写的东西比较多,需要注意:安全设置里 ...

  4. 自定义mvc增删改查

    对t_mvc_book表的增删改查 导入jar包 BaseDao package com.hmc.util; import java.lang.reflect.Field; import java.s ...

  5. RookeyFrame Bug 线上创建的DLL被删除了 模块无法删除 临时解决

    不知道什么情况 在线创建模块,DLL被删除了,但是模块的相关数据无法删除.可以按照下面的方法临时用一下. 产生这个的原因,好像是Config里面的NeedInit一直都是true,没有改为false, ...

  6. Codevs 3002 石子归并 3(DP四边形不等式优化)

    3002 石子归并 3 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次 ...

  7. BZOJ 1073: [SCOI2007]kshort

    二次联通门 : BZOJ 1073: [SCOI2007]kshort /* BZOJ 1073: [SCOI2007]kshort A* k短路 但是会爆一个点, 是卡A*的 */ #include ...

  8. 如何快速把ps序列图层建立帧动画?

    工具ps 1.将序列帧图片载入ps 新建->脚本->将文件载入堆栈 2.制作序列帧动画 窗口->时间轴->时间轴面板右上角菜单->从图层建立帧 3.去除多余的透明画布 全 ...

  9. 转载:Spark GraphX详解

    1.GraphX介绍 1.1 GraphX应用背景 Spark GraphX是一个分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口,极大的方便了对分布式图处理的需求. ...

  10. 部署K8S集群

    1.Kubernetes 1.1.概念 kubernetes(通常称为k8s)用于自动部署.扩展和管理容器化应用程序的开源系统.它旨在提供“跨主机集群的自动部署.扩展以及运行应用程序容器的平台”.支持 ...