内容简介
本书是Java语言的经典教材,中文版分为基础篇阶篇,主要介绍程序设计基础、面向对象程序设计、GUI程序设计、数据结构和算法、Java程序设计等内容。本书通过示例讲解问题求解技巧,提供大量的程序清单,每章配有丰富的复编程练帮助读者掌握编程技术,并学会应用所学技术解决实际开发中遇到的问题阶篇主要讨论数据结构和算法括线表、栈、队列、规则集、映射、排序、树和图等内容。本书可作为高等院校计算机相关专业程序设计课程的教材,也可作为Java语言及编程爱好者的参考资料。
目录
中文版序译者序前言第19章 泛型 119.1 引言 119.2 动机和优点 119.3 定义泛型类和接口 419.4 泛型方法 519.5 示例学一个对象数行排序 719.6 原生类型和向后兼容 819.7 通配泛型 1019.8 泛型的擦除和限制 1219.9 示例学型矩阵类 15关键术语 19本章小结 19测试题 20编程练 20第20章 线表、栈、队列和优先队列 2220.1 引言 2220.2 集合 2320.3 迭代器 2620.4 使用forEach方法 2720.5 线表 2820.5.1 List接口中的通用方法 2820.5.2 ArrayList和linkedList类 3020.6 Comparator接口 3220.7 用于线表和集合的静态方法 3620.8 示例学球 4020.9 向量类和栈类 4320.10 队列和优先队列 4420.10.1 Queue接口 4420.10.2 双端队列Deque和链表linkedList 4520.11 示例学达式求值 47关键术语 51本章小结 51测试题 52编程练 52第21章 规则集和映射 5721.1 引言 5721.2 规则集 5721.2.1 HashSet 5821.2.2 linkedHashSet 6121.2.3 TreeSet 6221.3 比较规则集和线表的能 6521.4 示例学键字计数 6721.5 映射 6921.6 示例学词的出现次数 7321.7 单例与不可变的集合和映射 75关键术语 76本章小结 76测试题 77编程练 77第22章 开发算法 7922.1 引言 7922.2 使用大O表示法来衡量算法效率 7922.3 示例:确定大O 8122.4 分析算法的时间复杂度 8522.4.1 分析二分查找算法 8522.4.2 分析选择排序算法 8522.4.3 分析汉诺塔问题 8522.4.4 常用的递推关系 8622.4.5 比较常用的增长函数 8622.5 使用动态编程求斐波那契数 8722.6 使用欧几里得算法求大公约数 8922.7 求素数的算法 9322.8 使用分治法寻找点对 9822.9 使用回溯法解决八皇后问题 10122.10 计算几何:寻找 10322.10.1 裹算法 10422.10.2 格雷厄姆算法 10522.11 字符串匹配 10622.11.1 算法 10622.11.2 Boyer-Moore算法 10722.11.3 Knuth-Morris-Pratt算法 109关键术语 112本章小结 112测试题 113编程练 113第23章 排序 12023.1 引言 12023.2 插入排序 12123.3 冒泡排序 12323.4 归并排序 12523.5 快速排序 12823.6 堆排序 13223.6.1 堆的存储 13323.6.2 添加一个新结点 13323.6.3 删除根结点 13423.6.4 Heap类 13523.6.5 使用Heap行排序 13723.6.6 堆排序的时间复杂度 13823.7 桶排序和基数排序 13923.8 外部排序 14123.8.1 实现阶段Ⅰ 14323.8.2 实现阶段Ⅱ 14323.8.3 结合两个阶段 14523.8.4 外部排序复杂度 148关键术语 148本章小结 148测试题 149编程练 149第24章 实现线表、栈、队列和优先队列 15324.1 引言 15324.2 线表的通用操作 15324.3 数组线表 15624.4 链表 16324.4.1 结点 16324.4.2 MylinkedList类 16524.4.3 实现MylinkedList 16624.4.4 MyArrayList和MylinkedList 17424.4.5 链表的变体 17424.5 栈和队列 17624.6 优先队列 179本章小结 180测试题 181编程练 181第25章 二叉搜索树 18325.1 引言 18325.2 二叉搜索树基础 18325.3 表示二叉搜索树 18425.4 查找一个元素 18525.5 在BST中插入一个元素 18525.6 树的遍历 18725.7 BST类 18825.8 删除BST中的一个元素 19725.9 树的可视化和MVC 20225.10 迭代器 20525.11 示例学据压缩 207关键术语 211本章小结 211测试题 212编程练 212第26章 AVL树 21626.1 引言 21626.2 重衡树 21726.3 为AVL树设计类 21926.4 重写insert方法 22026.5 实现旋转 22126.6 实现delete方法 22126.7 AVLTree类 22226.8 测试 AVLTree类 22726.9 AVL树的时间复杂度分析 230


