Data Structures and Algorithms in Java 6th Edition
ویرایش ششم کتاب Data Structures and Algorithms in Java (ساختمانهای داده و الگوریتمها در جاوا)، مقدمه ای بر ساختمانهای داده از قبیل طراحی، آنالیز و پیاده سازی آنها است. از دیر باز طراحی و آنالیز ساختمانهای داده کار آمد به عنوان موضوع اصلی در محاسبات شناخته شده است. ما حس میکنیم که نقش اساسی طراحی و آنالیز ساختمان داده در برنامهی تحصیلی و توجه به اهمیت ساختمانهای داده و الگوریتمهای کار آمد در بیشتر سیستمهای نرم افزاری از جمله وب، سیستمهای عامل، پایگاههای داده، کامپایلرها و سیستمهای شبیه سازی علمی، کاملا محرز شده است.
این کتاب برای استفاده در درس ساختمانهای داده مقدماتی یا مقدمه ای متوسط برای درس الگوریتمها طرح ریزی شده است. فصول این کتاب به نحوی سازمان دهی شده اند تا مسیری آموزشی ارائه کند که از مبانی زبان برنامه نویسی جاوا و طراحی شی گرا شروع میشود. پس از این ما در مورد ساختمانهای به هم پیوسته از قبیل آرایهها و لیستهای پیوندی و تکنیکهای بنیادین مثل آنالیز الگوریتم و بازگشتی بحث میکنیم. در بخش اصلی کتاب، ساختمان دادهها و الگوریتمهای پایه ای ارائه شده که با بحث در مورد مدیریت حافظه به نتیجه رسیده است.
Data Structures and Algorithms in Java provides an introduction to data structures and algorithms, including their design, analysis, and implementation. The major changes in this sixth edition include the following:
• We redesigned the entire code base to increase clarity of presentation and consistency in style and convention, including reliance on type inference, as introduced in Java 7, to reduce clutter when instantiating generic types.
• We added 38 new figures, and redesigned 144 existing figures.
• We revised and expanded exercises, bringing the grand total to 794 exercises! We continue our approach of dividing them into reinforcement, creativity, and project exercises. However, we have chosen not to reset the number- ing scheme with each new category, thereby avoiding possible ambiguity between exercises such as R-7.5, C-7.5, P-7.5.
• The introductory chapters contain additional examples of classes and inheritance, increased discussion of Java’s generics framework, and expanded coverage of cloning and equivalence testing in the context of data structures.
• A new chapter, dedicated to the topic of recursion, provides comprehensive coverage of material that was previously divided within Chapters 3, 4, and 9 of the fifth edition, while newly introducing the use of recursion when processing file systems.
• We provide a new empirical study of the efficiency of Java’s StringBuilder class relative to the repeated concatenation of strings, and then discuss the theoretical underpinnings of its amortized performance.
• We provide increased discussion of iterators, contrasting between so-called lazy iterators and snapshot iterators, with examples of both styles of implementation for several data structures.
• We have increased the use of abstract base classes to reduce redundancy when providing multiple implementations of a common interface, and the use of nested classes to provide greater encapsulation for our data structures.
• We have included complete Java implementations for many data structures and algorithms that were only described with pseudocode in earlier editions. These new implementations include both array-based and linked-list-based queue implementations, a heap-based adaptable priority queue, a bottom-up heap construction, hash tables with either separate chaining or linear probing, splay trees, dynamic programming for the least-common subsequence problem, a union-find data structure with path compression, breadth-first search of a graph, the Floyd-Warshall algorithm for computing a graph’s transitive closure, topological sorting of a DAG, and both the Prim-Jarn´ık and Kruskal algorithms for computing a minimumspanning tree.
Table of Contents
Chapter 1: Java Primer
Chapter 2: Object-Oriented Design
Chapter 3: Fundamental Data Structures
Chapter 4: Algorithm Analysis
Chapter 5: Recursion
Chapter 6: Stacks, Queues, and Deques
Chapter 7: List and Iterator ADTs
Chapter 8: Trees
Chapter 9: Priority Queues
Chapter 10: Maps, Hash Tables, and Skip Lists
Chapter 11: Search Trees
Chapter 12: Sorting and Selection
Chapter 13: Text Processing
Chapter 14: Graph Algorithms
Chapter 15: Memory Management and B-Trees