数据抽象和问题求解:Java语言描述


数据抽象和问题求解:Java语言描述

文章插图
数据抽象和问题求解:Java语言描述【数据抽象和问题求解:Java语言描述】《数据抽象和问题求解Java语言描述》是2007年清华大学出版社出版的图书 。
基本介绍书名:数据抽象和问题求解:Java语言描述
又名:数据抽象和问题求解
作者:(美国)卡拉诺 (Frank M.Carrano) (美国)普里查德 (Janet J.Prichard)
ISBN: 7302149399, 9787302149392
页数: 700页
出版社:清华大学出版社
出版时间:2007年5月1日
开本:16
正文语种: 简体中文
尺寸:26 x 18.7 x 2.8 cm
重量:1.1 Kg
作者简介作者:(美国)卡拉诺 (Frank M.Carrano) (美国)普里查德 (Janet J.Prichard) 译者:郭平 张敏作者简介Frank M.Carrano,Syracuse大学博士毕业,现任Rhode Island大学计算机科学系教授 。主要研究方向为数据抽象技术、教育软体及多媒体技术 。曾编写多本计算机书籍,如tOProblem Solving and DataAbstraction with C++;Walls andMirrors,Intermediate Problem Solving andData Structures:WallsandMirrors等.Janet J.Prichard,Rhode Island大学博士毕业,现任Bryant大学计算机科学系副教授,具有15年程式设计课程的教学经验 。主要研究方向为实时资料库与Web技术 。译者简介郭平,湖南大学硕士 。一直从事计算机网路与通信、高级程式设计、网路系统安全方面的教学、科研和开发工作;取得多项科研、学术成果,在核心期刊、国际国内会议卜发表论文30余篇 。编着出版教材和译着5本,获军队科技进步奖励3项 。卡要研究领域为计算机网路系统设计、网路性能分析、Web套用系统 。张敏,华中理工大学硕士,高级网路系统管理员 。一直从事计算机网路系统与套用、高级程式设计与网路系统安全等方面的教学、科研和开发工作;取得多项科研,学术成果,在核心期刊、国际闲内会议上发表论文10余篇 。主要研究领域为计算机网路套用系统、网路办公系统、Web应川系统 。内容简介《数据抽象和问题求解-Java语言描述》全面系统地讲述了如何利用Java语言解决实际问题,重点剖析了数据结构和数据抽象的核心概念,并通过大量示例向读者展示了面向对象程式设计理念的精髓 。《数据抽象和问题求解-Java语言描述》在第1版的基础上完善了所有的Java代码,使用UML处理了所有伪代码,通过準确的概念讲解、贴切的示例和範围广泛的问题讨论,使老师和学生的教与学都变得轻鬆自如 。《数据抽象和问题求解-Java语言描述》能够使读者系统地掌握问题求解技术和相关的编程技能,为日后的软体开发工作打下坚实的基础 。《数据抽象和问题求解-Java语言描述》表述严谨、推理缜密,适合作为计算机及相关专业本科学生的教材,也是一本技术含量很高的专业参考书 。目录第I部分问题求解技术第1章Java编程基础1.1程式结构1.1.1包1.1.2类1.1.3数据栏位1.1.4方法1.1.5对象成员的访问方法1.2Java基础知识1.2.1注释1.2.2标识符和关键字1.2.3变数1.2.4基本数据类型1.2.5引用1.2.6字面常量1.2.7命名常量1.2.8赋值和表达式1.2.9数组1.3分支结构1.3.1if语句1.3.2switch语句1.4循环结构1.4.1while语句1.4.2for语句1.4.3do语句1.5有用的Java类1.5.1Object类1.5.2字元串类1.6Java异常1.6.1捕获异常1.6.2抛出异常1.7文本输入和输出1.7.1输入1.7.2输出1.8档案输入和输出1.8.1文本档案1.8.2对象串列化1.9小结1.10提示第2章编程原理与软体工程2.1问题求解与软体工程2.1.1问题求解的含义2.1.2软体的生命周期2.1.3优秀的解决方案2.2面向对象设计2.2.1抽象与信息隐藏2.2.2面向对象的设计2.2.3功能分解2.2.4一般设计原则2.2.5使用UML为面向对象的设计建模2.2.6面向对象方式的优点2.3关键编程问题2.3.1模组化2.3.2可修改性2.3.3易用性2.3.4防故障编程2.3.5风格2.3.6调试2.4小结2.5提示2.6自我测试题2.7练习题2.8编程问题第3章递归:镜子3.1递归解决方案3.1.1递归值方法:n的阶乘3.1.2递归void方法:逆置字元串3.2计数3.2.1兔子繁殖(Fibonacci序列)3.2.2组织游行队伍3.2.3Spock的困惑3.3数组查找3.3.1查找数组的最大项3.3.2二叉查找3.3.3查找数组中的第k个最小项3.4组织数据3.5递归与效率3.6小结3.7提示3.8自我测试题3.9练习题3.10编程问题第4章数据抽象:墙4.1抽象数据类型4.2指定ADT4.2.1ADT列表4.2.2ADT有序表4.2.3设计ADT4.2.4公理(可选)4.3实现ADT4.3.1Java类 4.3.2Java接口4.3.3Java包4.3.4基于数组的ADT列表的实现4.4小结4.5提示4.6自我测试题4.7练习题4.8编程问题第5章鍊表5.1预备知识5.1.1对象引用5.1.2变长数组5.1.3基于引用的鍊表5.2鍊表编程5.2.1显示鍊表的内容5.2.2从鍊表中删除指定的节点5.2.3在鍊表的指定位置插入节点5.2.4ADT列表的基于引用的实现5.2.5比较基于数组的实现和基于引用的实现5.2.6将鍊表传给方法5.2.7递归地处理鍊表5.3鍊表的各种变体5.3.1尾引用5.3.2循环鍊表5.3.3虚拟头节点5.3.4双向鍊表5.4清单应用程式5.5Java集合框架5.5.1泛型5.5.2叠代器5.5.3JCF的List接口5.6小结5.7提示5.8自我测试题5.9练习题5.10编程问题第Ⅱ部分使用抽象数据类型解决问题第6章递归问题求解技术6.1回溯6.2定义语言6.2.1语法知识基础6.2.2两种简单语言6.2.3代数表达式6.3递归和数学归纳法的关係6.3.1factorial递归算法的正确性6.3.2Hanoi塔的成本6.4小结6.5提示6.6自我测试题6.7练习题6.8编程问题第7章栈7.1ADT栈7.2ADT栈的简单套用7.2.1检查括弧匹配7.2.2识别语言中的字元串7.3ADT栈的实现7.3.1ADT栈的基于数组的实现7.3.2ADT栈的基于引用的实现7.3.3使用ADT列表的实现7.3.4各种实现的比较7.3.5JCF的Stack类7.4套用:代数表达式7.4.1计算后缀表达式7.4.2将中缀表达式转换为后缀表达式7.5套用:查找问题7.5.1使用栈的非递归解决方案7.5.2递归解决方案7.6栈和递归的关係7.7小结7.8提示7.9自我测试题7.10练习题7.11编程问题第8章伫列8.1ADT伫列 8.2ADT伫列的简单套用8.2.1读取字元串8.2.2识别回文8.3实现ADT伫列8.3.1基于引用的实现8.3.2基于数组的实现8.3.3使用ADT列表的实现8.3.4JCF接口Queue8.3.5比较实现8.4基于位置的ADT总览8.5模拟套用8.6小结8.7提示8.8自我测试题8.9练习题8.10编程问题第9章高级Java主题9.1继承9.1.1Java访问修饰符9.1.2is-a和has-a关係9.2动态绑定和抽象类9.2.1抽象类9.2.2Java接口9.3ADT列表和有序表9.4Java泛型9.4.1泛型类9.4.2泛型通配符9.4.3泛型类和继承9.4.4类List的泛型实现9.4.5泛型方法9.5叠代器9.6小结9.7提示9.8自我测试题9.9练习题9.10编程问题第10章算法的效率和排序10.1确定算法的效率10.1.1算法的执行时间10.1.2算法增率10.1.3数量阶分析和大O表示法10.1.4正确分析问题10.1.5查找算法的效率10.2排序算法及其效率10.2.1选择排序10.2.2冒泡排序10.2.3插入排序10.2.4归併排序10.2.5快速排序10.2.6基数排序10.2.7各种排序算法的比较10.2.8JCF的排序算法10.3小结10.4提示10.5自我测试题10.6练习题10.7编程问题第11章树11.1术语11.2ADT二叉树11.2.1ADT二叉树的基本操作11.2.2ADT二叉树的一般操作11.2.3二叉树的遍历11.2.4二叉树的表示11.2.5ADT二叉树的基于引用的实现11.2.6使用叠代器遍历树11.3ADT二叉查找树11.3.1ADT二叉查找树操作的算法11.3.2ADT二叉查找树的基于引用的实现11.3.3二叉查找树操作的效率11.3.4树排序11.3.5将二叉查找树保存到档案中11.3.6JCF的二叉树查找算法11.4一般树11.5小结11.6提示11.7自我测试题 11.8练习题11.9编程问题第12章表和优先伫列12.1ADT表12.1.1选择实现12.1.2ADT表的基于数组的有序实现12.1.3ADT表的基于二叉查找树的实现12.2ADT优先伫列:ADT表的变体12.2.1堆12.2.2ADT优先伫列的堆实现12.2.3堆排序12.3JCF中的表和优先伫列12.3.1JCF的Map接口12.3.2JCF的Set接口12.3.3JCF的PriorityQueue类12.4小结12.5提示12.6自我测试题12.7练习题12.8编程问题第13章表的高级实现方案13.1平衡查找树13.1.12-3树13.1.22-3-4树13.1.3红-黑树13.1.4AVL树13.2散列13.2.1散列函式13.2.2解决冲突13.2.3散列效率13.2.4如何确立散列函式13.2.5表遍历:散列的低效操作13.2.6JCF的Hashtable和TreeMap类13.2.7Hashtable类13.2.8TreeMap类13.3按多种形式组织数据13.4小结13.5提示13.6自我测试题13.7练习题13.8编程问题第14章图14.1术语14.2将图作为ADT14.2.1实现图14.2.2用JCF实现Graph类14.3图的遍历14.3.1深度优先查找14.3.2广度优先查找14.3.3用JCF实现BFS叠代器类14.4图的套用14.4.1拓扑排序14.4.2生成树14.4.3最小生成树14.4.4最短路径14.4.5迴路14.4.6一些複杂问题14.5小结14.6提示14.7自我测试题14.8练习题14.9编程问题第15章外部方法15.1了解外部存储15.2排序外部档案的数据15.3外部表15.3.1确定外部档案的索引15.3.2外部散列15.3.3B-树15.3.4遍历15.3.5多索引15.4小结15.5提示 15.6自我测试题15.7练习题15.8编程练习附录AJava与C++的区别附录BUnicode字元代码附录CJava资源附录D数学归纳法附录EJava操作符附录F术语表附录G自我测试题答案