Categories Corporate
home.book.professional_ebook

Java Data Structures and Algorithms

253
Language:  English
Standard introduction to data structures and algorithms using the Java programming language covering stacks, queues, lists, trees, sets, maps, graphs, hashing, searching, and sorting.
book.buy.professional_plus_subscription.after
Эту книгу можно прочесть на нашей онлайн-платформе. Без рекламы.
Описание
Содержание

A concise introduction to data structures and algorithms in Java. Data structures are presented in a container hierarchy that includes stacks and queues as non-traversable dispensers, and lists, sets, and maps as traversable collections. Algorithm analysis is introduced and applied to linear and binary search, bubble sort, selection sort, insertion sort, merge sort and quicksort. The book also covers heaps and heapsort, unbalanced binary search trees, AVL trees, 2-3 trees, hashing, graph representations, and graph algorithms based on depth-and breadth-first search.

About the author

Christopher Fox is a Professor and Director of the Undergraduate Program in Computer Science at James Madison University. He holds a Ph.D. in Information Studies and an M.S. in Computer Science from Syracuse University, and M.A. and B.A. degrees in Philosophy from Michigan State University. Dr. Fox has over 20 years experience teaching Computer Science at JMU, Bowling Green State University, Villanova, Rutgers, and Colgate. Dr. Fox also spent a decade in software research and development at various companies, including AT&T Bell Laboratories. He has published numerous articles and several books, including Introduction to Software Engineering in the Unix/C Environment, and Introduction to Software Engineering Design.

  • Preface 
  1. Introduction 
    1. What Are Data Structures and Algorithms? 
    2. Structure of the Book 
    3. The Java Programming Language 
    4. Review Questions 
    5. Exercises 
    6. Review Question Answers 
  2. Built-In Types 
    1. Simple and Structured Types 
    2. Simple Types in Java 
    3. Structured Types in Java 
    4. Arrays 
    5. Java Characters and Strings 
    6. ADTs and Receivers
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers 
  3. Containers 
    1. Introduction 
    2. Varieties of Containers 
    3. A Container Taxonomy 
    4. A Java Container Hierarchy 
    5. Review Questions 
    6. Exercises 
    7. Review Question Answers 
  4. Assertions 
    1. Introduction 
    2. Types of Assertions 
    3. Assertions and Abstract Data Types 
    4. Using Assertions 
    5. Assertions in Java 
    6. Review Questions 
    7. Exercises 
    8. Review Question Answers 
  5. Stacks 
    1. Introduction 
    2. The Stack ADT and Interface 
    3. An Example Using Stacks 
    4. Contiguous Implementation of the Stack ADT 
    5. Linked Implementation of the Stack ADT 
    6. Summary and Conclusion 
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers 
  6. Queues 
    1. Introduction 
    2. The Queue ADT and Interface 
    3. An Example Using Queues 
    4. Contiguous Implementation of the Queue ADT 
    5. Linked Implementation of the Queue ADT 
    6. Summary and Conclusion
    7. Review Questions
    8. Exercises 
    9. Review Question Answers 
  7. Stacks and Recursion
    1. Introduction 
    2. Balanced Brackets 
    3. Infix, Prefix, and Postfix Expressions 
    4. Tail Recursive Algorithms 
    5. Summary and Conclusion 
    6. Review Questions 
    7. Exercises 
    8. Review Question Answers 
  8. Collections and Iterators 
    1. Introduction
    2. Iteration Design Alternatives 
    3. The Iterator Design Pattern 
    4. Collections and Iteration in Java
    5. Collections and Iterators in the Container Hierarchy 
    6. Summary and Conclusion 
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers 
  9. Lists 
    1. Introduction 
    2. The List ADT and Interface 
    3. An Example Using Lists 
    4. Contiguous Implementation of the List ADT 
    5. Linked Implementation of the List ADT 
    6. Example: Modifying a Doubly-Linked Circular List 
    7. Summary and Conclusion 
    8. Review Questions 
    9. Exercises 
    10. Review Question Answers 
  10. Analyzing Algorithms 
    1. Introduction 
    2. Measuring the Amount of Work Done
    3. The Size of the Input 
    4. Which Operations to Count 
    5. Best, Worst, and Average Case Complexity 
    6. Summary and Conclusion 
    7. Review Questions
    8. Exercises 
    9. Review Question Answer
  11. Function Growth Rates 
    1. Introduction 
    2. Definitions and Notation 
    3. Establishing the Order of Growth of a Function 
    4. Applying Orders of Growth
    5. Summary and Conclusion
    6. Review Questions
    7. Exercises
    8. Review Question Answers
  12. Amortized Analysis
    1. Introduction
    2. A Stack Data Type
    3. Dynamic Arrays
    4. Summary and Conclusion
    5. Review Questions
    6. Exercises
    7. Review Question Answers
  13. Basic Sorting Algorithms
    1. Introduction
    2. Bubble Sort
    3. Selection Sort
    4. Insertion Sort
    5. Shell Sort
    6. Summary and Conclusion
    7. Review Questions
    8. Exercises
    9. Review Question Answers
  14. Recurrences
    1. Introduction
    2. Setting Up Recurrences
    3. Solving Recurrences
    4. Summary and Conclusion
    5. Review Questions
    6. Exercises
    7. Review Question Answers
  15. Merge Sort and Quicksort 
    1. Introduction 
    2. Merge Sort 
    3. Quicksort 
    4. Improvements to Quicksort 
    5. Summary and Conclusion 
    6. Review Questions 
    7. Exercises 
    8. Review Question Answers 
  16. Trees, Heaps, and Heapsort 
    1. Introduction 
    2. Basic Terminology 
    3. Binary Trees
    4. Heaps
    5. Heapsort 
    6. Summary and Conclusion 
    7. Review Questions
    8. Exercises 
    9. Review Question Answers 
  17. Binary Trees 
    1. Introduction
    2. The Binary Tree ADT 
    3. The Binary Tree Class 
    4. Contiguous Implementation of Binary Trees 
    5. Linked Implementation of Binary Trees
    6. Summary and Conclusion 
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers 
  18. Binary Search and Binary Search Trees 
    1. Introduction
    2. Binary Search
    3. Binary Search Trees
    4. The Binary Search Tree Class
    5. Summary and Conclusion
    6. Review Questions
    7. Exercises
    8. Review Question Answers
  19. AVL Trees
    1. Introduction 
    2. Balance in AVL Trees 
    3. Insertion in AVL Trees 
    4. Deletion in AVL Trees 
    5. The Efficiency of AVL Operations 
    6. The AVL Tree Class 
    7. Summary and Conclusion 
    8. Review Questions 
    9. Exercises 
    10. Review Question Answers 
  20. 2-3 Trees 
    1. Introduction 
    2. Properties of 2-3 Trees 
    3. Insertion in 2-3 Trees 
    4. Deletion in 2-3 Trees 
    5. The Two-Three Tree Class 
    6. Summary and Conclusion
    7. Review Questions 
    8. Exercises 
    9. Review Question Answers 
  21. Sets 
    1. Introduction 
    2. The Set ADT
    3. The Set Interface
    4. Contiguous Implementation of Sets 
    5. Linked Implementation of Sets 
    6. Sets and Tree Sets in Java 
    7. Summary and Conclusion 
    8. Review Questions 
    9. Exercises 
    10. Review Question Answers 
  22. Maps 
    1. Introduction 
    2. The Map ADT
    3. The Map Interface 
    4. Contiguous Implementation of the Map ADT
    5. Linked Implementation of the Map ADT 
    6. Summary and Conclusion 
    7. Review Questions 
    8. Exercises
    9. Review Question Answers 
  23. Hashing 
    1. Introduction 
    2. The Hashing Problem
    3. Hash Functions
    4. Collision Resolution Schemes
    5. Summary and Conclusion 
    6. Review Questions 
    7. Exercises 
    8. Review Question Answers 
  24. Hashed Collections 
    1. Introduction
    2. Hash Table Class
    3. HashMaps
    4. HashSets 
    5. Summary and Conclusion 
    6. Review Questions 
    7. Exercises 
    8. Review Question Answers 
  25. Graphs 
    1. Introduction 
    2. Directed and Undirected Graphs 
    3. Basic Terminology 
    4. The Graph ADT 
    5. The Graph Interface 
    6. Contiguous Implementation of the Graph ADT 
    7. Linked Implementation of the Graph ADT 
    8. Summary and Conclusion 
    9. Review Questions 
    10. Exercises 
    11. Review Question Answers 
  26. Graph Algorithms
    1. Introduction 
    2. Searching Graphs 
    3. Depth-First Search
    4. Breadth-First Search 
    5. Paths in a Graph 
    6. Connected Graphs and Spanning Trees 
    7. Summary and Conclusion 
    8. Review Questions 
    9. Exercises 
    10. Review Question Answers 
    11. Glossary 
home.book.about_author

Christopher Fox