数据抽象和问题求解

出版时间:2007-5  出版社:清华大学出版社  作者:普里查德  页数:700  
Tag标签:无  

前言

本书是《数据抽象和问题求解—— Java语言描述》的第2版,相信本书会使您的教学或者学习大受裨益。Java目前已经成为计算机科学课程的主要语言之一,也非常适合以面向对象的方式讲解数据抽象原理。本书基于Paul Helman和Robert Veroff合著的Intermediate Problem Solving and Data Structures:Walls and Mirrors(Benjamin/Cummings公司,1986年),继承了原著的组织方式和理念,包括技术要点与正文内容、示例、图和练习题。Paul Helman和Robert Veroff教授把数据抽象和问题求解比喻为墙和镜子,并提出多种有利于教学的理念。本书重点介绍数据抽象和其他主流的问题求解工具,非常适合作为计算机科学中级课程的教材。考虑到计算机科学的动态性和多样性,本书涵盖各种主题,以求适用于不同课程的教学要求。例如,可将本书用作数据结构入门级教材,也可用作高级程序设计和问题求解方面的教材。本书旨在使学生切实了解和掌握数据抽象、面向对象编程和其他高级问题求解技术。第2版中的新增内容基于Java 5:第2版进行了全面修订,以兼容Java的最新版本Java 5。书中的所有代码都修改为Java 5兼容版本。泛型是Java 5的重要部分,第9章将对它进行深入的讲解,并在后续章节中应用。更多面向对象的Java知识:本书还增加了大量面向对象的Java语言知识,帮助学生从Java入门课程转向本课程。第1章概述了Java的重要概念,其中包括Java 5的新特性,例如Scanner类和自动装箱(autoboxing)。第9章重点介绍了Java的高级主题。UML介绍:添加了UML(Unified Modeling Language,统一建模语言)的简要介绍,而且书中的所有伪代码都更新为使用UML。使用Java集合框架:对Java集合框架(Java Collections Framework,JCF)的讨论贯穿全书,还新增了一些介绍JCF类的章节,提供了一些使用JCF类的示例。其他扩充内容:其他的修订旨在提高整本书的可用性和可读性,包括一些新的练习和设计。致学生已经有成千上万的学生了解了“墙”和“镜子”的概念。“墙”和“镜子”代表两种贯穿全书的基本问题求解技术。“数据抽象”技术将模块的实现细节与程序的其余部分隔离开,就像一堵将您和邻居隔开的墙。“递归”是重复技术,通过解决同类型的小问题来解决问题,就像镜像一样,每次反射都会逐渐变小。本书在编写时充分考虑了学生的需求。作者一直在从事教学工作,很明白清晰表述的重要性。本书在风格上力求明晰精练,通俗易懂。为了帮助学生学习本书,并通过练习进行复习,各章添加了小结、自我测试题及练习题,附录部分提供了自我测试题的答案和一个术语表。本书的第1章提供了Java参考资料。后面“本书概览”一节还列出了本书的主要特性。第1章在章节概述中对学生掌握Java知识的情况作了几个基本的假定。有的学生可能是首次接触Java,或者需要对以前所学的Java知识进行全面回顾;而一些学生可能已经掌握了第1章中介绍的大部分编程知识。不管您属于哪一类,都需要知道if和switch分支结构,for、while和do迭代语句,类、方法、参数,数组,字符串和文件等。除了第1章中介绍的内容外,第9章还讨论了Java的一些高级主题,例如泛型和迭代器。本书还假定学生不具备使用递归方法的经验,所以在第3章和第6章中将讲述这方面的内容。本书的所有Java源代码学生都可以使用。后面的“辅助资料”一节中将说明如何获取这些文件。致教师本书使用Java 5来描述数据抽象原理和数据结构。我们根据Java语言的优缺点,采用针对性的教学方法,力求做到实用、明确和透彻。先决条件本书要求学生了解Java的基础知识,或者了解另外一种高级语言,并有教师帮助他过渡到使用Java语言。对于没有Java语言背景的学生,可以通过第1章快速掌握其基本知识,为后面的学习打好基础。另外,本书还讨论了Java类,包括类的各种基本概念,诸如继承、多态性、接口和包。但本书只介绍这些与实现抽象数据类型(ADT)有关的内容,重点仍是ADT,而非Java。本书在基于对象的编程环境中介绍数据抽象,要求学生掌握面向对象设计和软件工程知识。这样,后面就会将注意力集中在数据抽象上。当然,我们还介绍了UML这种设计工具。

内容概要

本书全面系统地讲述了如何利用Java语言解决实际问题,重点剖析了数据结构和数据抽象的核心概念,并通过大量示例向读者展示了面向对象程序设计理念的精髓。本书在第1版的基础上完善了所有的Java代码,使用UML处理了所有伪代码,通过准确的概念讲解、贴切的示例和范围广泛的问题讨论,使老师和学生的教与学都变得轻松自如。本书能够使读者系统地掌握问题求解技术和相关的编程技能,为日后的软件开发工作打下坚实的基础。    本书表述严谨、推理缜密,适合作为计算机及相关专业本科学生的教材,也是一本技术含量很高的专业参考书。

作者简介

Frank M.Carrano,Syracuse大学博士毕业,现任Rhode Island大学计算机科学系教授。主要研究方向为数据抽象技术、教育软件及多媒体技术。曾编写多本计算机书籍,如Problem Solving and Data Abtraction with C++:Walls and Mirrors,Intermediate Problem Solving and Data Structures:Walls and Mirrors等。

书籍目录

第Ⅰ部分  问题求解技术 第1章  Java编程基础  1.1  程序结构	  1.2  Java基础知识  1.3  分支结构	  1.4  循环结构	  1.5  有用的Java类  1.6  Java异常	  1.7  文本输入和输出  1.8  文件输入和输出  1.9  小结  1.10  提示 第2章  编程原理与软件工程	  2.1  问题求解与软件工程	  2.2  面向对象设计  2.3  关键编程问题  2.4  小结  2.5  提示  2.6  自我测试题  2.7  练习题  2.8  编程问题 第3章  递归:镜子  3.1  递归解决方案  3.2  计数	  3.3  数组查找	  3.4  组织数据	  3.5  递归与效率	  3.6  小结	  3.7  提示  3.8  自我测试题  3.9  练习题	  3.10  编程问题	 第4章  数据抽象:墙  4.1  抽象数据类型  4.2  指定ADT  4.3  实现ADT  4.4  小结	  4.5  提示  4.6  自我测试题	  4.7  练习题	  4.8  编程问题	 第5章  链表	  5.1  预备知识	  5.2  链表编程  5.3  链表的各种变体  5.4  清单应用程序  5.5  Java集合框架	  5.6  小结  5.7  提示	  5.8  自我测试题  5.9  练习题	  5.10  编程问题	第Ⅱ部分  使用抽象数据类型解决问题 第6章  递归问题求解技术	  6.1  回溯	  6.2  定义语言  6.3  递归和数学归纳法的关系	  6.4  小结	  6.5  提示  6.6  自我测试题	  6.7  练习题  6.8  编程问题 第7章  栈	  7.1  ADT栈  7.2  ADT栈的简单应用  7.3  ADT栈的实现  7.4  应用:代数表达式  7.5  应用:查找问题	  7.6  栈和递归的关系  7.7  小结	  7.8  提示  7.9  自我测试题  7.10  练习题  7.11  编程问题 第8章  队列	  8.1  ADT队列	  8.2  ADT队列的简单应用  8.3  实现ADT队列	  8.4  基于位置的ADT总览  8.5  模拟应用  8.6  小结	  8.7  提示	  8.8  自我测试题	  8.9  练习题	  8.10  编程问题	 第9章  高级Java主题  9.1  继承	  9.2  动态绑定和抽象类	  9.3  ADT列表和有序表  9.4  Java泛型	  9.5  迭代器	  9.6  小结  9.7  提示  9.8  自我测试题  9.9  练习题	  9.10  编程问题 第10章  算法的效率和排序  10.1  确定算法的效率  10.2  排序算法及其效率  10.3  小结  10.4  提示  10.5  自我测试题  10.6  练习题	  10.7  编程问题 第11章  树	  11.1  术语  11.2  ADT二叉树  11.3  ADT二叉查找树	  11.4  一般树  11.5  小结	  11.6  提示	  11.7  自我测试题	  11.8  练习题  11.9  编程问题	 第12章  表和优先队列	  12.1  ADT表	  12.2  ADT优先队列: ADT表的变体  12.3  JCF中的表和优先队列	  12.4  小结  12.5  提示	  12.6  自我测试题  12.7  练习题  12.8  编程问题	 第13章  表的高级实现方案  13.1  平衡查找树	  13.2  散列  13.3  按多种形式组织数据  13.4  小结	  13.5  提示  13.6  自我测试题	  13.7  练习题  13.8  编程问题	 第14章  图  14.1  术语	  14.2  将图作为ADT  14.3  图的遍历  14.4  图的应用	  14.5  小结	  14.6  提示  14.7  自我测试题  14.8  练习题	  14.9  编程问题 第15章  外部方法	  15.1  了解外部存储	  15.2  排序外部文件的数据  15.3  外部表  15.4  小结	  15.5  提示	  15.6  自我测试题  15.7  练习题  15.8  编程练习附录A  Java与C++的区别	附录B  Unicode字符代码附录C  Java资源附录D  数学归纳法附录E  Java操作符附录F  术语表	附录G  自我测试题答案

章节摘录

插图:

编辑推荐

《数据抽象和问题求解-Java语言描述》重要特色:涵盖Java 5的高级主题,例如泛型、迭代器、Java集合框架。通过大量救命演示类和抽象数据类型(ADF)在问题求解过程中的作用。精心设置“自我测试题”、“练习题”、“编程问题”等环节,以利于课堂教学。知识点全面,语言通俗易懂,可同时满足初、中级读者的学习要求。《数据抽象和问题求解-Java语言描述》在介绍如何开发面向对象程序的同时,不治之症丰重讲解了标准数据结构。作者首先介绍了Java中需要特别掌握的部分,然后讨论了程序设计中类、继承、多态性、递归和复杂度分析等概念。最后一章介绍了线程和同步技术,为学生转向计算机科学的高级课程作了铺垫。另外,作者还采用大量的案例分析贯穿《数据抽象和问题求解-Java语言描述》始终,突出了软件的生命周期。《数据抽象和问题求解-Java语言描述》这本畅销的经典教材经过本次修订后,囊括了C++编程语言的许多最新转性。除阐述了数据抽象的所有基础知识外,还强调了规范和实现之间的区别,而这种区别正是面向对象方式的基础。

图书封面

图书标签Tags

评论、评分、阅读与下载


    数据抽象和问题求解 PDF格式下载


用户评论 (总计11条)

 
 

  •   这本书是我在图书馆看到的,觉得很好就到当当买了。一本好书,适合于希望成为高级程序员的人阅读。强烈推荐!
  •   教科书~
  •   没啥说的,就两个字“经典”。
  •   基本和想象的一样,还是和普通的数据结构书有不一样的地方~
  •   帮同学买的,同学说还不错!!
  •   不错的书,看的很细,寒假都看一大半了。
  •   总体来说和我预想的没什么出入,书的质量也可以,就不知道内容如何,呵呵............
  •   翻译得很不错,看的时候对照着原版一起学,帮助更大
  •   作为初学者的书还是可以的,但是翻译真的很烂很烂,很多地方明显是用机器翻译的
  •   比英文原版的便宜多了,作为参考书还是不错的
  •   比较简单的书,不错
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7