第一图书网

数据结构

马里克 (Malik.D.S) 清华大学出版社
出版时间:

2004-5  

出版社:

清华大学出版社  

作者:

马里克 (Malik.D.S)  

页数:

676  

字数:

1113000  

译者:

杨浩  

Tag标签:

无  

前言

本书假定读者熟知Java的基础元素知识,如数据类型、控制结构、功能函数与参数、配置数组等。但是如果读者你需要复习这些概念,或者将C++为作为第一编程语言,可以在附录F中找到相关的内容。如果需要更详细地了解附录F中的主题,请参考《Java基础教程——从问题分析到程序设计》一节以及附录G中列出的参考文献。另外,本书还要求读者具备一定的数学基础,如高等数学。本书主要内容作为计算机科学专业的基础课程,本书把重点放在数据结构和面向对象设计(object-orienteddesign,OOD)上。书中提供的编程示例有效地使用了面向对象设计技术,通过以解决并编写程序解决一特定的问题。第一1章介绍了软件引擎工程原则理。这一章首先描述了软件的生命周期,然后讨论了算法分析的重要性,并介绍了算法分析中使用的大O表示法。面向对象设计技术有3个基本原则:封装性、继承性和多态性。Java的封装通过类来的使用而实现封装性。第一1章的下后半部分讨论了用户定义的类。如果读者你熟悉如何创建并使用你自己的类,你可能略可以略过这部分内容。这一章还讨论了解决特定问题的基本面向对象设计技术。第2二章继续讨论前一章对面向对象设计原则的讨论,介绍了了继承性和异常处理,并解释如何通过继承性原则来扩展类的定义。在执行Java程序时,可能会发生一些错误。例如,不小心进行了除0操作,标记不存在的字符串,数组的索引超出了边界;这些类型的错误在Java中称为异常。Java对程序异常的处理提供了强大的支持。本章除了说明如何使用已有的Java异常类之外,还阐述了如何构建自己的异常类。第3三章讨论如何在数组中组织和处理数据。本章除了解释如何开发自己的代码之外,还演示了Java类Vector的工作原理。第4五章讨论了链列表。这一首先解释了链列表的基本属性,如数据的插入和删除,链列表的创建等。接着然后,这一章开发了一段通用代码,来处理在单向链列表中处理的数据。这一章还讨论了双重链列表,带有头跟踪器尾节点的链列表,和以及循环的链列表。第5六章介绍了递归,并用大量的示例显演示了如何使以用递归的方式来解决问题,同时还考虑了递归的术语。第6七章和第7八章讨论了堆栈和队列。除了演示显示了如何开发自己的通用代码来来实现堆栈和队列外,还解释了Java类Stack的工作原理,以及堆栈和队列的应用。第8九章描述了搜索算法。,在分析顺序的搜索算法之后,又讨论了二元叉树搜索算法,并对这种算法进行了简要的分析。在初步探讨基于比较的搜索算法之后,本章还讨论了散列算法。第9章十介绍了将算法进行分类,例如排序算法,如选择分类排序、插入分类排序、快速分类排序、合并分类排序和堆分类排序。第10十一章讨论了二元叉树。第十二11章介绍了图和表图表的算法,如最短路径,最小生成树,和拓扑分类排序。附录A列出了Java中的保留字。附录B显示列出了Java运算符的优先级权和关联性。附录C列出了ASCII(AmericanStandardCodeforInformationInterchange,美国信息交换标准码)和EBCDIC(可扩充二进制代码的十进制交换码)的性能字符集。附录D介绍了用户定义的类在Java程序中的使用方法。附录E描述了本书中使用的Java类。附录F回顾了Java的基本要点,并比较了Java和C++语言的基本概念,如数据类型,控制结构,功能参数函数和参数和以及数组。所以,如果你以第一编程语言是C++为第一编程语言,就可以通过附录F使你掌握这些Java的基本要点。附录G为进一步学习Java知识和附录F中没有提到的主题提供了一些了一个引用表参考文献主题。附录H提供书文中精选部分练习题的答案。

内容概要

本书是计算机科学专业的权威教程。书中通过大量简明清晰的说明和示例,运用Java成功地描述了各种算法。内容涉及到数据结构课程的所有知识点,包括结构化模板库、二叉树、图的算法,以及搜索和排序等。
本书结构特色:
·编程示例——每一章的最后都包含多个完整的示例程序,这些示例不仅给出了详细的输入、输出、问题分析和算法设计,还提供了完整的程序清单。
·快速回顾——这部分总结了每章提出的所有概念。
·练习题——测试学生判断各个声明和语句是否正确的能力。
·编程练习——学生可以按照指定的要求编写Java程序。
·注意——强调与各个概念相关的重要内容。
·带编号的示例——通过相关代码说明各种编程思想。

作者简介

D.S.Malik是Creighton大学的数学和计算机科学系教授,他于1985年在Creighton大学获得博士学位后,就一直在该大学从事计算机教学工作。目前,他已经表了45篇论文,出版了6本著作,涉及抽象代数、模糊自控理论和语言、模糊逻辑及其应用、信息科学等领域。

书籍目录

第1章 软件工程基本原理和Java类 1.1 软件的生命周期 1.2 软件开发阶段 1.3 算法分析:大O表示法 1.4 用户定义的类 1.5 抽象数据类型 1.6 编程示例:糖果机 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 类ArrayListClass 3.3 无序表 3.4 类Vector 3.5 编程示例:多项式的运算 3.6 快速回顾 3.7 练习题 3.8 编程练习第4章 链表 4.1 链表 4.2 链表元素的插入和删除 4.3 构建链表 4.4 ADT链表 4.5 无序链表 4.6 有序链表 4.7 双向链表 4.8 带有头节点和尾节点的链表 4.9 循环链表 4.10 编程示例:音像店 4.11 快速回顾 4.12 练习题 4.13 编程练习第5章 递归 5.1 递归的定义 5.2 使用递归法解决问题 5.3 编程示例:将十进制数转换为二进制数 5.4 编程示例:Sierpinski gasket 5.5 使用递归还是迭代 5.6 递归和回溯:8-皇后问题 5.7 快速回顾 5.8 练习题 5.9 编程练习第6章 堆栈 6.1 堆栈 6.2 StackException类 6.3 使用数组实现堆栈 6.4 编程示例:求最高GPA 6.5 把堆栈实现为链表 6.6 由类LinkedListClass派生而来的堆栈 6.7 堆栈的应用:后缀表达式计算器 6.8 后缀表达式计算器:图形用户界面(GUI) 6.9 消除递归:反向打印链表的非递归算法 6.10 类Stack 6.11 快速回顾 6.12 练习题 6.13 编程练习第7章 队列 7.1 队列 7.2 队列的异常类 7.3 队列的数组实现 7.4 队列的链表实现 7.5 从类LinkedListClass派生而来的队列 7.6 优先队列 7.7 队列的应用:模拟 7.8 快速回顾 7.9 练习题 7.10 编程练习第8章 搜索算法 8.1 搜索算法 8.2 基于比较的搜索算法的下限 8.3 散列算法 8.4 快速回顾 8.5 练习题 8.6 编程练习第9章 排序算法 9.1 排序算法 9.2 选择排序: 基于数组的表 9.3 插入排序: 基于数组的表 9.4 插入排序: 基于链表的表 9.5 基于比较的排序算法的下限 9.6 快速排序:基于数组的表 9.7 归并排序: 基于链表的表 9.8 堆排序: 基于数组的表 9.9 再论优先级队列 9.10 编程示例:选举结果 9.11 快速回顾 9.12 练习题 9.13 编程练习第10章 二叉树 10.1 二叉树 10.2 二叉树的遍历 10.3 二叉搜索树 10.4 二叉搜索树分析 10.5 二叉树的非递归遍历算法 10.6 AVL(平衡)树 10.7 编程示例:音像店 10.8 快速回顾 10.9 练习题 10.10 编程练习第11章 图 11.1 图的简史 11.2 图的定义和符号 11.3 图的表示方法 11.4 图的操作 11.5 图的ADT定义 11.6 图的遍历 11.7 最短路径算法 11.8 最小生成树 11.9 拓扑排序 11.10 快速回顾 11.11 练习题 11.12 编程练习附录A 保留字附录B 运算符优先级附录C 字符集附录D 包和用户定义的类附录E Java类附录F 针对C++程序员的JAVA介绍附录G 参考文献附录H 部分习题答案

章节摘录

插图:


图书封面

图书标签Tags

广告

下载页面


数据结构 PDF格式下载



这本书不错,是国外计算机专业经典教材,买了不只是为了学习,还是为了收藏做参考书。


发货挺快,书也挺好


书内容一般吧,我觉得数据结构java版的不是很好。


相关图书