数据结构与问题求解:Java语言描述(原书第4版)9787111746874
全新正版 新华集团直发 开票请联系
¥
135.84
8.0折
¥
169
全新
库存2件
作者[美]马克·艾伦·维斯(Mark Allen Weiss)
出版社机械工业
ISBN9787111746874
出版时间2024-04
装帧其他
开本其他
定价169元
货号32058081
上书时间2024-12-29
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
马克·艾伦·维斯(MarkAllenWeiss)佛罗里达国际大学工程与计算学院杰出教授、副院长。他于1983年获得库伯高级科学艺术联合学院电子工程学士学位,并于1987年获得普林斯顿大学计算机科学博士学位。他是IEEE、AAAS会士和ACM杰出教育家。曾获SIGCSE计算机科学教育杰出贡献奖、IEEE泰勒·布斯教育奖、IEEE威廉·塞尔教育奖、ACM卡尔斯特罗姆杰出教育家奖。
目录
目 录<br />Data Structures and Problem Solving Using Java, Fourth Edition<br />译者序<br />前言<br />第一部分 Java之旅<br />第1章 Java的基本特性 2<br />1.1 总体运行环境 2<br />1.2 第一个程序 3<br />1.2.1 注释 3<br />1.2.2 main 3<br />1.2.3 终端输出 4<br />1.3 Java的基本类型 4<br />1.3.1 基本类型 4<br />1.3.2 常量 4<br />1.3.3 基本类型的声明和初始化 5<br />1.3.4 终端输入和输出 5<br />1.4 基本运算符 5<br />1.4.1 赋值运算符 5<br />1.4.2 二元算术运算符 6<br />1.4.3 一元运算符 6<br />1.4.4 类型转换 7<br />1.5 条件语句 7<br />1.5.1 关系运算符和相等运算符 7<br />1.5.2 逻辑运算符 8<br />1.5.3 if语句 8<br />1.5.4 while语句 9<br />1.5.5 for语句 9<br />1.5.6 do语句 10<br />1.5.7 break和continue语句 11<br />1.5.8 switch语句 11<br />1.5.9 条件运算符 12<br />1.6 方法 12<br />1.6.1 方法名的重载 13<br />1.6.2 存储类 13<br />1.7 总结 13<br />1.8 核心概念 14<br />1.9 常见错误 15<br />1.10 网络资源 15<br />1.11 练习 15<br />1.12 参考文献 16<br />第2章 引用类型 18<br />2.1 什么是引用 18<br />2.2 对象和引用的基础知识 19<br />2.2.1 点运算符 19<br />2.2.2 对象的声明 20<br />2.2.3 垃圾收集 20<br />2.2.4 =的含义 21<br />2.2.5 参数传递 22<br />2.2.6 ==的含义 22<br />2.2.7 没有对象的运算符重载 23<br />2.3 字符串 23<br />2.3.1 字符串操作的基础 23<br />2.3.2 字符串连接 23<br />2.3.3 字符串比较 24<br />2.3.4 其他String方法 24<br />2.3.5 将其他类型转换为字符串 24<br />2.4 数组 25<br />2.4.1 声明、赋值和方法 25<br />2.4.2 动态数组扩展 27<br />2.4.3 ArrayList 29<br />2.4.4 多维数组 30<br />2.4.5 命令行参数 31<br />2.4.6 增强的for循环 31<br />2.5 异常处理 32<br />2.5.1 处理异常 32<br />2.5.2 finally子句 33<br />2.5.3 常见的异常 33<br />2.5.4 throw和throws子句 34<br />2.6 输入和输出 35<br />2.6.1 基本的流操作 35<br />2.6.2 Scanner类型 36<br />2.6.3 顺序文件 38<br />2.7 总结 40<br />2.8 核心概念 40<br />2.9 常见错误 41<br />2.10 网络资源 42<br />2.11 练习 42<br />2.12 参考文献 45<br />第3章 对象和类 46<br />3.1 什么是面向对象程序设计 46<br />3.2 简单示例 47<br />3.3 javadoc 48<br />3.4 基本方法 50<br />3.4.1 构造方法 50<br />3.4.2 设置方法和访问方法 51<br />3.4.3 输出和toString 52<br />3.4.4 equals 52<br />3.4.5 main 52<br />3.5 示例:使用java.math.<br />BigInteger 52<br />3.6 其他结构成分 54<br />3.6.1 this引用 54<br />3.6.2 用于构造方法的this简写 55<br />3.6.3 instanceof运算符 55<br />3.6.4 实例成员和静态成员 55<br />3.6.5 静态域和方法 55<br />3.6.6 静态初始化程序 57<br />3.7 示例:实现BigRational类 58<br />3.8 包 61<br />3.8.1 import指令 61<br />3.8.2 package语句 62<br />3.8.3 CLASSPATH环境变量 63<br />3.8.4 包可见性规则 64<br />3.9 设计模式:复合 64<br />3.10 总结 65<br />3.11 核心概念 66<br />3.12 常见错误 67<br />3.13 网络资源 67<br />3.14 练习 67<br />3.15 参考文献 71<br />第4章 继承 72<br />4.1 什么是继承 72<br />4.1.1 创建新的类 72<br />4.1.2 类型兼容性 76<br />4.1.3 动态调度和多态 76<br />4.1.4 继承层次结构 77<br />4.1.5 可见性规则 77<br />4.1.6 构造方法和super 78<br />4.1.7 final方法和类 79<br />4.1.8 覆盖一个方法 80<br />4.1.9 再次讨论类型兼容性 81<br />4.1.10 数组类型的兼容性 82<br />4.1.11 协变返回类型 82<br />4.2 设计层次结构 83<br />4.2.1 抽象方法和类 85<br />4.2.2 为未来而设计 86<br />4.3 多继承 87<br />4.4 接口 88<br />4.4.1 规范接口 89<br />4.4.2 实现一个接口 89<br />4.4.3 多接口 90<br />4.4.4 接口是抽象类 90<br />4.5 Java中的基本继承 90<br />4.5.1 Object类 90<br />4.5.2 异常的层次结构 90<br />4.5.3 I/O:装饰器模式 92<br />4.6 使用继承实现泛型组件 94<br />4.6.1 Object用于泛型 94<br />4.6.2 基本类型的包装类 96<br />4.6.3 装箱/拆箱 97<br />4.6.4 适配器:改变接口 97<br />4.6.5 为泛型使用接口类型 98<br />4.7 使用Java 5泛型实现泛型组件 99<br />4.7.1 简单的泛型类和接口 99<br />4.7.2 有界通配符 100<br />4.7.3 泛型静态方法 101<br />4.7.4 类型限定 101<br />4.7.5 类型擦除 102<br />4.7.6 对泛型的限制 103<br />4.8 函子 105<br />4.8.1 嵌套类 107<br />4.8.2 局部类 108<br />4.8.3 匿名类 109<br />4.8.4 嵌套类和泛型 110<br />4.9 动态调度细节 110<br />4.10 总结 112<br />4.11 核心概念 113<br />4.12 常见错误 114<br />4.13 网络资源 114<br />4.14 练习 115<br />4.15 参考文献 121<br />第二部分 算法和构成要素<br />第5章 算法分析 124<br />5.1 什么是算法分析 124<br />5.2 算法运行时间示例 126<br />5.3 最大连续子序列和问题 127<br />5.3.1 容易理解的O(N3)算法 128<br />5.3.2 改进的O(N2)算法 129<br />5.3.3 线性算法 130<br />5.4 一般的大O规则 132<br />5.5 对数 134<br />5.6 静态搜索问题 136<br />5.6.1 顺序搜索 136<br />5.6.2 二分搜索 136<br />5.6.3 插值搜索 138<br />5.7 检查算法分析 139<br />5.8 大O分析的局限性 140<br />5.9 总结 140<br />5.10 核心概念 140<br />5.11 常见错误 141<br />5.12 网络资源 141<br />5.13 练习 141<br />5.14 参考文献 148<br />第6章 Collections API 149<br />6.1 介绍 149<br />6.2 迭代器模式 150<br />6.2.1 迭代器的基本设计 151<br />6.2.2 基于继承的迭代器和工厂<br />方法 152<br />6.3 Collections API:容器和迭代器 154<br />6.3.1 Collection接口 154<br />6.3.2 Iterator接口 156<br />6.4 泛型算法 158<br />6.4.1 Comparator函数对象 158<br />6.4.2 Collections类 159<br />6.4.3 二分搜索 160<br />6.4.4 排序 162<br />6.5 List接口 162<br />6.5.1 ListIterator接口 163<br />6.5.2 LinkedList类 164<br />6.5.3 List的运行时间 166<br />6.5.4 在List的中间进行删除和<br />插入 168<br />6.6 栈和队列 169<br />6.6.1 栈 169<br />6.6.2 栈和计算机语言 170<br />6.6.3 队列 171<br />6.6.4 Collections API中的栈和<br />队列 171<br />6.7 集合 172<br />6.7.1 TreeSet类 173<br />6.7.2 HashSet类 174<br />6.8 映射 177<br />6.9 优先队列 181<br />6.10 Collections API中的视图 183<br />6.10.1 List中的subList方法 183<br />6.10.2 SortedSet中的headSet、subSet和tailSet方法 183<br />6.11 总结 184<br />6.12 核心概念 184<br />6.13 常见错误 185<br />6.14 网络资源 185<br />6.15 练习 186<br />6.16 参考文献 192<br />第7章 递归 193<br />7.1 什么是递归 193<br />7.2 背景:数学归纳法证明 194<br />7.3 基本递归 195<br />7.3.1 输出任意基数的数 196<br />7.3.2 递归为什么有效 198<br />7.3.3 递归的工作原理 199<br />7.3.4 出现过多的递归可能是<br />危险的 200<br />7.3.5 树的预览 201<br />7.3.6 其他示例 202<br />7.4 数值应用 204<br />7.4.1 模运算 205<br />7.4.2 模幂运算 205<br />7.4.3 最大公约数和乘法逆元 206<br />7.4.4 RSA加密系统 208<br />7.5 分治算法 210<br />7.5.1 最大连续子序列和问题 210<br />7.5.2 基本分治重现的分析 212<br />7.5.3 分治法运行时间的一般上界 214<br />7.6 动态规划 216<br />7.7 回溯 218<br />7.8 总结 221<br />7.9 核心概念 222<br />7.10 常见错误 222<br />7.11 网络资源 223<br />7.12 练习 223<br />7.13 参考文献 228<br />第8章 排序算法 229<br />8.1 排序的重要性 229<br />8.2 预备知识 230<br />8.3 插入排序和其他简单排序的分析 230<br />8.4 希尔排序 232<br />8.5 归并排序 235<br />8.5.1 线性时间内有序数组的合并 235<br />8.5.2 归并排序算法 236<br />8.6 快速排序 238<br />8.6.1 快速排序算法 239<br />8.6.2 快速排序的分析 240<br />8.6.3 选择枢轴 243<br />8.6.4 划分策略 244<br />8.6.5 关键字等于枢轴 245<br />8.6.6 三元中值划分 246<br />8.6.7 小数组 246<br />8.6.8 Java快速排序例程 247<br />8.7 快速选择 248<br />8.8 排序的下界 250<br />8.9 总结 250<br />8.10 核心概念 251<br />8.11 常见错误 251<br />8.12 网络资源 251<br />8.13 练习 251<br />8.14 参考文献 255<br />第9章 随机化 256<br />9.1 为什么需要随机数 256<br />9.2 随机数生成器 256<br />9.3 不均匀随数 262<br />9.4 生成一个随机排列 263<br />9.5 随机算法 264<br />9.6 随机素数测试 266<br />9.7 总结 268<br />9.8 核心概念 268<br />9.9 常见错误 269<br />9.10 网络资源 269<br />9.11 练习 269<br />9.12 参考文献 270<br />第三部分 应用程序<br />第10章 娱乐和游戏 274<br />10.1 字谜游戏 274<br />10.1.1 理论 274<br />10.1.2 Java实现 275<br />10.2 井字棋游戏 280<br />10.2.1 α-β剪枝 280<br />10.2.2 置换表 282<br />10.2.3 计算机下棋 285<br />10.3 总结 286<br />10.4 核心概念 286<br />10.5 常见错误 286<br />10.6 网络资源 286<br />10.7 练习 286<br />10.8 参考文献 288<br />第11章 栈和编译器 289<br />11.1 平衡符号检查 289<br />11.1.1 基本算法 289<br />11.1.2 实现 290<br />11.2 一个简单的计算器 297<br />11.2.1 后缀机器 298<br />11.2.2 中缀到后缀的转换 299<br />11.2.3 实现 300<br />11.2.4 表达式树 306<br />11.3 总结 307<br />11.4 核心概念 307<br />11.5 常见错误 308<br />11.6 网络资源 308<br />11.7 练习 308<br />11.8 参考文献 309<br />第12章 实用工具 310<br />12.1 文件压缩 310<br />12.1.1 前缀编码 311<br />12.1.2 霍夫曼算法 312<br />12.1.3 实现 314<br />12.2 交叉引用生成器 325<br />12.2.1 基本思想 325<br />12.2.2 Java实现 325<br />12.3 总结 328<br />12.4 核心概念 328<br />12.5 常见错误 328<br />12.6 网络资源 328<br />12.7 练习 329<br />12.8 参考文献 331<br />第13章 模拟 332<br />13.1 约瑟夫问题 332<br />13.1.1 简单的解决方案 333<br />13.1.2 更有效率的算法 334<br />13.2 事件驱动模拟 335<br />13.2.1 基本思路 336<br />13.2.2 示例:电话银行模拟 336<br />13.3 总结 342<br />13.4 核心概念 342<br />13.5 常见错误 342<br />13.6 网络资源 342<br />13.7 练习 343<br />第14章 图和路径 344<br />14.1 定义 344<br />14.2 无权最短路径问题 353<br />14.2.1 理论 353<br />14.2.2 Java实现 355<br />14.3 正权值最短路径问题 356<br />14.3.1 理论:Dijkstra算法 356<br />14.3.2 Java实现 359<br />14.4 负权值最短路径问题 360<br />14.4.1 理论 360<br />14.4.2 Java实现 361<br />14.5 无环图中的路径问题 362<br />14.5.1 拓扑排序 362<br />14.5.2 无环最短路径算法的<br />理论 364<br />14.5.3 Java实现 364<br />14.5.4 应用:关键路径分析 366<br />14.6 总结 367<br />14.7 核心概念 368<br />14.8 常见错误 369<br />14.9 网络资源 369<br />14.10 练习 369<br />14.11 参考文献 371<br />第四部分 实现<br />第15章 内部类和ArrayList的<br />实现 374<br />15.1 迭代器和嵌套类 374<br />15.2 迭代器和内部类 376<br />15.3 AbstractCollection类 378<br />15.4 StringBuilder 381<br />15.5 实现带迭代器的ArrayList 382<br />15.6 总结 386<br />15.7 核心概念 386<br />15.8 常见错误 386<br />15.9 网络资源 386<br />15.10 练习 386<br />第16章 栈和队列 389<br />16.1 动态数组实现 389<br />16.1.1 栈 389<br />16.1.2 队列 392<br />1.2 链式实现 396<br />16.2.1 栈 397<br />16.2.2 队列 399<br />16.3 两种方法的比较 402<br />16.4 java.util.Stack类 402<br />16.5 双端队列 403<br />16.6 总结 403<br />16.7 核心概念 404<br />16.8 常见错误 404<br />16.9 网络资源 404<br />16.10 练习 404<br />第17章 链表 405<br />17.1 基本思想 405<br />17.1.1 头结点 406<br />17.1.2 迭代器类 407<b
— 没有更多了 —
以下为对购买帮助不大的评价