具体描述
本书系统地讲述了各种常用的数据结构,对基本概念、基本原理和基本方法进行了深入浅出的介绍,同时对相关的算法设计也进行了详细的讲解。本书的一大特点就是采用非常流行的面向对象程序设计语言Java作为算法描述语言,将传统的数据结构与面向对象技术完美结合,更加自然贴切,易于理解。
本书第3版结合Java 5.0进行了改进,增加了一些新内容,包括:泛型和枚举数据类型,数组、集合以及枚举类型中使用的for循环的新形式,用于原始值与封装器之间转换的autoboxing和unboxing,带有可变参数的方法,输入/输出特性,Java子类型和协变返回值。
本书特色
● 各个主题的顺序非常灵活,教师可以根据课程需要自行选择。
● 讲述如何基于Java类库规范,设计、实现和使用类。
● 讨论编程技巧、陷阱警告和错误警告,突出Java的细微之处。
● 使用一致的五步方法介绍数据类型:抽象理解数据类型,编写规格说明,使用数据类型,设计和实现数据类型,分析实现。
● 介绍如何编写Java Applet来测试新实现的数据结构。
作者简介
Michael Main 于华盛顿州立大学获得博士学位,目前为科罗拦多大学计算机科学系副教授。
目录信息
1.1 Specification, Design, Implementation
1.2 Running Time Analysis.
1.3 Testing and Debugging
Chapter Summary and Solutions
CHAPTER 2 Java Classes and Information Hiding
2.1 Classes and Their Members
2.2 Using a Class
2.3 Packages
2.4 Parameters, Equals Methods, and Clones
Chapter Summary, Solutions and Projects
CHAPTER 3 Collection Classes
3.1 A Review of Java Arrays
3.2 An ADT for a Bag of Integers
3.3 Programming Project: The Sequence ADT
3.4 Programming Project: The Polynomial
Chapter Summary, Solutions and Projects
CHAPTER 4 Linked Lists
4.1 Fundamentals of Linked Lists
4.2 Methods for Manipulating Nodes
4.3 Manipulating an Entire Linked List
4.4 The Bag ADT with a Linked List
4.5 Programming Project: The Sequence ADT with a Linked List
4.6 Beyond Simple Linked Lists
Chapter Summary, Solutions and Projects
CHAPTER 5 Generic Programming
5.1 Java's Object Type
5.2 Object Methods and Generic Methods
5.3 Generic Classes
5.4 Generic Nodes
5.5 Interfaces and Iterators
5.6 A Generic Bag Class That Implements the Iteraable Interface (Optional Section).
5.7 Introduction to the Java Collection and Map Interlaces (Optional Section)
Chapter Summary, Solutions and Projects
CHAPTER 6 Stacks
6.1 Introduction to Stacks
6.2 Stack Applications
6.3 Implementations of the Stack ADT
6.4 More Complex Stack Applications
Chapter Summary, Solutions and Projects
CHAPTER 7 Queues
7.1 Introduction to Queues
7.2 Queue Applications
7.3 Implementations of the Queue ADT
7.4 Priority Queues..
Chapter Summary, Solutions and Projects
CHAPTER 8 Recursive Thinking
8.1 Recursive Methods
8.2 Studies of Recursion: Fractals and Mazes
8.3 Reasoning about Recursion
Chapter Summary, Solutions and Projects
CHAPTER 9 Trees
9.1 Introduction to Trees
9.2 Tree Representations
9.3 A Class for Binary Tree Nodes
9.4 Tree Traversals
9.5 Binary Search Trees
Chapter Summary, Solutions and Projects
CHAPTER 10 Tree Projects
10.1 Heaps
10.2 B-Trees
10.3 Java Support for Trees
10.4 Trees, Logs, and Time Analysis
Chapter Summary, Solutions and Projects
CHAPTER 11 Searching
11.1 Serial Search and Binary Search
11.2 Open-Address Hashing
11.3 Using Java's Hashtable Class
11.4 Chained Hashing
11.5 Time Analysis of Hashing
Chapter Summary, Solutions and Projects
CHAPTER 12 Sorting
12.1 Quadratic Sorting Algorithms
12.2 Recursive Sorting Algorithms
12.3 An O(n log n) Algorithm Using a Heap
Chapter Summary, Solutions and Projects
CHAPTER 13 Software Reuse wilh Extended Classes
13.1 Extended Classes
13.2 Generic Type Parameters and Inheritance
13.3 Simulation of an Ecosystem
13.4 Abstract Classes and a Game Class
Chapter Summary, Further Reading, Solutions and Projects
CHAPTER 14 Graphs
14.1 Graph Definitions
14.2 Graph Implementations
14.3 Graph Traversals
14.4 Path Algorithms
Chapter Summary, Solutions and ProjectsAPPENDIXES
A. Java's Primitive Types and Arithmetic Overflow
B. Java Input and Output
C. Throwing and Catching Java Exceptions
D. ArrayList, Vector, Hashtable, and HashMap Classes
E. A Class for Nodes in a Linked List
F A Class for a Bag of Objects
G. Further Big-O Notation
H. Javadoc
I. Applets for Interactive Testing
INDEX
· · · · · · (收起)
读后感
用户评价
我最近读完的这本**关于“后殖民时期非洲文学中的身份认同危机”**的书,简直是思想的饕餮盛宴。它绝不仅仅是文学评论,更像是一场深刻的哲学对话。作者聚焦于几个关键作家的作品,探讨了在传统文化与西方现代性冲击下,个体如何挣扎于被割裂的自我认知中。最让我感到震撼的是关于“语言的背叛”这一章,分析了作者们如何在殖民者给予的语言体系中,试图重塑本土的叙事和情感表达的困境,那种夹缝中求生存的文学张力,令人动容。这本书的行文风格充满了诗意和人文关怀,它用犀利的视角揭示了权力对心智的长期腐蚀,读完后,我感觉自己对“文化主体性”这个概念有了更深层次、更具同理心的理解,让人久久无法释怀。
这本书,一本**专注于介绍古罗马时期军事工程学**的著作,简直是技术爱好者和历史迷的福音!我原本以为会是一本枯燥的图纸和数据罗列,但作者的叙事方式充满了史诗感。他没有仅仅停留在介绍“龟甲阵”或“攻城塔”的结构上,而是将这些工程奇迹置于具体的战役背景中进行分析。比如,详细描述了凯撒的军队如何在一天之内构筑起一个完整的临时防御工事,以及这种工程效率如何成为罗马军团不可战胜的关键因素。书中对材料学(如火山灰混凝土的配比)和后勤保障的细致描摹,简直令人惊叹,它让你意识到,罗马帝国的扩张,一半是靠勇士的鲜血,另一半是靠工程师的智慧和严谨的组织能力。这本书的插图极其精良,那些精确到毫米的结构剖面图,配上清晰的文字说明,使得即便是非工程专业出身的读者也能清晰理解这些古代智慧的精妙之处。
天呐,我最近读完了一本关于**全球气候变化对珊瑚礁生态系统影响**的著作,简直可以说是震撼人心。作者以极其细腻的笔触,描绘了海水酸化和升温如何像无声的瘟疫一样,正在吞噬着地球上最绚烂的“海洋城市”。书中不仅有大量的科学数据和实地考察记录,更穿插着许多潜水员和海洋生物学家的个人故事,那些关于目睹白化现象的恐惧和无助,读来让人脊背发凉。尤其是关于“珊瑚礁生态系统崩溃后对依赖它们的渔业和沿海社区的影响”这一章节,作者深入分析了经济链条的断裂和文化遗产的流失,让我深刻体会到,保护这些脆弱的生命体,远不止是环保主义者的口号,而是关乎人类生存和全球食物安全的大问题。这本书的图文并茂做得非常出色,那些在健康时五彩斑斓和白化后苍白如骨的对比照片,视觉冲击力极强,真正做到了将冰冷的科学事实转化为有温度的、紧迫的危机感。
说实话,这本**关于“非线性动力学在金融市场预测中的应用”**的书,一开始让我有些望而却步,因为它涉及大量的傅里叶变换和相空间重构等高阶数学工具。但令人惊喜的是,作者在介绍理论时,总是能巧妙地用生活中熟悉的现象来打比方,比如用蝴蝶效应来解释微小波动如何引发市场崩盘,这种“化繁为简”的叙事技巧,极大地降低了专业壁垒。我特别喜欢书中关于“混沌系统”如何解释市场周期性泡沫和崩溃的部分,它提供了一种完全不同于传统经济学模型的视角——市场并非随机游走,而是有其内在的、极其复杂的确定性规律。尽管我还是得时不时地查阅一下微积分知识,但整体阅读体验是酣畅淋漓的,它真正教会了我如何用一种更具批判性的眼光去看待那些看似无序的金融波动。
我简直无法用“满意”来形容我对这本**探讨文艺复兴时期佛罗伦萨政治权力结构演变**的学术专著的感受,它完全超出了我预期的深度和广度。作者没有满足于简单地复述美第奇家族的崛起,而是细致入微地剖析了行会、贵族、平民议会之间错综复杂的权力制衡与倾轧。我尤其欣赏作者对档案文献的挖掘和解读,那些晦涩难懂的拉丁文文件被抽丝剥茧,还原了当时城市治理的真实面貌。书中对“公民身份”的界定随时间推移而发生的微妙变化进行了长篇论述,这个角度非常新颖,让我对“城邦”这个概念有了全新的理解。阅读过程中,我仿佛置身于那个充满着阴谋、艺术赞助和阶级斗争的沸腾年代,每一个章节都像是在拼凑一幅复杂的历史拼图,需要极高的专注力,但回报是极其丰厚的知识满足感。