Concise Notes on Data Structures and Algorithms Ruby Edition
Publisher: Bookboon.com
Published: 2013
Place of publication: London
Language: eng
Format: ebook
ISBN-13: 9788740302738
Table of contents: title: Content; title: 1. Preface; title: 2. Introduction; title: 2.1. What Are Data Structures and Algorithms?; title: 2.2. Structure of the Book; title: 2.3. The Ruby Programming Language; title: 2.4. Review Questions; title: 2.5. Exercises; title: 2.6. Review Question Answers; title: 3. Built-In Types; title: 3.1. Simple and Structured Types; title: 3.2. Types in Ruby; title: 3.3. Symbol: A Simple Type in Ruby; title: 3.4. Range: A Structured Type in Ruby; title: 3.5. Review Questions; title: 3.6. Exercises; title: 3.7. Review Question Answers; title: 4. Arrays; title: 4.1. Introduction; title: 4.2. Varieties of Arrays; title: 4.3. Arrays in Ruby; title: 4.4. Review Questions; title: 4.5. Exercises; title: 4.6. Review Question Answers; title: 5. Assertions; title: 5.1. Introduction; title: 5.2. Types of Assertions; title: 5.3. Assertions and Abstract Data Types; title: 5.4. Using Assertions; title: 5.5. Assertions in Ruby; title: 5.6. Review Questions; title: 5.7. Exercises; title: 5.8. Review Question Answers; title: 6. Containers; title: 6.1. Introduction; title: 6.2. Varieties of Containers; title: 6.3. A Container Taxonomy; title: 6.4. Interfaces in Ruby; title: 6.5. Review Questions; title: 6.6. Exercises; title: 6.7. Review Question Answers; title: 7. Stacks; title: 7.1. Introduction; title: 7.2. The Stack ADT; title: 7.3. The Stack Interface; title: 7.4. Using Stacks—An Example; title: 7.5. Contiguous Implementation of the Stack ADT; title: 7.6. Linked Implementation of the Stack ADT; title: 7.7. Summary and Conclusion; title: 7.8. Review Questions; title: 7.9. Exercises; title: 7.10. Review Question Answers; title: 8. Queues; title: 8.1. Introduction; title: 8.2. The Queue ADT; title: 8.3. The Queue Interface; title: 8.4. Using Queues—An Example; title: 8.5. Contiguous Implementation of the Queue ADT; title: 8.6. Linked Implementation of the Queue ADT; title: 8.7. Summary and Conclusion; title: 8.8. Review Questions; title: 8.9. Exercises; title: 8.10. Review Question Answers; title: 9. Stacks and Recursion; title: 9.1. Introduction; title: 9.2. Balanced Brackets; title: 9.3. Infix, Prefix, and Postfix Expressions; title: 9.4. Tail Recursive Algorithms; title: 9.5. Summary and Conclusion; title: 9.6. Review Questions; title: 9.7. Exercises; title: 9.8. Review Question Answers; title: 10. Collections; title: 10.1. Introduction; title: 10.2. Iteration Design Alternatives; title: 10.3. The Iterator Design Pattern; title: 10.4. Iteration in Ruby; title: 10.5. Collections, Iterators, and Containers; title: 10.6. Summary and Conclusion; title: 10.7. Review Questions; title: 10.8. Exercises; title: 10.9. Review Question Answers; title: 11. Lists; title: 11.1. Introduction; title: 11.2. The List ADT; title: 11.3. The List Interface; title: 11.4. An Example of Using Lists; title: 11.5. Contiguous Implementation of the List ADT; title: 11.6. Linked Implementation of the List ADT; title: 11.7. Implementing Lists in Ruby; title: 11.8. Summary and Conclusion; title: 11.9. Review Questions; title: 11.10. Exercises; title: 11.11. Review Question Answers; title: 12. Analyzing Algorithms; title: 12.1. Introduction; title: 12.2. Measuring the Amount of Work Done; title: 12.3. The Size of the Input; title: 12.4. Which Operations to Count; title: 12.5. Best, Worst, and Average Case Complexity; title: 12.6. Summary and Conclusion; title: 12.7. Review Questions; title: 12.8. Exercises; title: 12.9. Review Question Answers; title: 13. Function Growth Rates; title: 13.1. Introduction; title: 13.2. Definitions and Notation; title: 13.3. Establishing the Order of Growth of a Function; title: 13.4. Applying Orders of Growth; title: 13.5. Summary and Conclusion; title: 13.6. Review Questions; title: 13.7. Exercises; title: 13.8. Review Question Answers; title: 14. Basic Sorting Algorithms; title: 14.1. Introduction; title: 14.2. Bubble Sort; title: 14.3. Selection Sort; title: 14.4. Insertion Sort; title: 14.5. Shell Sort; title: 14.6. Summary and Conclusion; title: 14.7. Review Questions; title: 14.8. Exercises; title: 14.9. Review Question Answers; title: 15. Recurrences; title: 15.1. Introduction; title: 15.2. Setting Up Recurrences; title: 15.3. Solving Recurrences; title: 15.4. Summary and Conclusion; title: 15.5. Review Questions; title: 15.5. Exercises; title: 15.6. Review Question Answers; title: 15.7. Merge sort and Quicksort; title: 16. Introduction; title: 16.1. Merge Sort; title: 16.2. Quicksort; title: 16.3. Improvements to Quicksort; title: 16.4. Summary and Conclusion; title: 16.5. Review Questions; title: 16.6. Exercises; title: 16.7. Review Question Answers; title: 16.8. Trees, Heaps, and Heapsort; title: 17. Introduction; title: 17.1. Basic Terminology; title: 17.2. Binary Trees; title: 17.3. Heaps; title: 17.4. Heapsort; title: 17.5. Summary and Conclusion; title: 17.6. Review Questions; title: 17.7. Exercises; title: 17.8. Review Question Answers; title: 17.9. Binary Trees; title: 18. Introduction; title: 18.1. The Binary Tree ADT; title: 18.2. The Binary Tree Class; title: 18.3. Contiguous Implementation of Binary Trees; title: 18.4. Linked Implementation of Binary Trees; title: 18.5. Summary and Conclusion; title: 18.6. Review Questions; title: 18.7. Exercises; title: 18.8. Review Question Answers; title: 18.9. Binary Search and Binary Search Trees; title: 19. Introduction; title: 19.1. Binary Search; title: 19.2. Binary Search Trees; title: 19.3. The Binary Search Tree Class; title: 19.4. Summary and Conclusion; title: 19.5. Review Questions; title: 19.6. Exercises; title: 19.7. Review Question Answers; title: 19.8. Sets; title: 20. Introduction; title: 20.1. The Set ADT; title: 20.2. The Set Interface; title: 20.3. Contiguous Implementation of Sets; title: 20.4. Linked Implementation of Sets; title: 20.5. Summary and Conclusion; title: 20.6. Review Questions; title: 20.7. Exercises; title: 20.8. Review Question Answers; title: 20.9. Maps; title: 21. Introduction; title: 21.1. The Map ADT; title: 21.2. The Map Interface; title: 21.3. Contiguous Implementation of the Map ADT; title: 21.4. Linked Implementation of the Map ADT; title: 21.5. Summary and Conclusion; title: 21.6. Exercises; title: 21.7. Review Question Answers; title: 21.8. Hashing; title: 22. Introduction; title: 22.1. The Hashing Problem; title: 22.2. Hash Functions; title: 22.3. Summary and Conclusion; title: 22.4. Review Questions; title: 22.5. Exercises; title: 22.6. Review Question Answers; title: 23. Hashed Collections; title: 23.1. Introduction; title: 23.2. Hash Tablets; title: 23.3. HashSets; title: 23.4. HashMaps; title: 23.5. Implementing Hashed Collections in Ruby; title: 23.6. Summary and Conclusion; title: 23.7. Review Questions; title: 23.8. Exercises; title: 23.9. Review Question Answers; title: 24. Graphs; title: 24.1. Introduction; title: 24.2. Directed and Undirected Graphs; title: 24.3. Basic Terminology; title: 24.4. The Graph ADT; title: 24.5. The Graph Class; title: 24.6. Contiguous Implementation of the Graph ADT; title: 24.7. Linked Implementation of the Graph ADT; title: 24.8. Summary and Conclusion; title: 24.9. Review Questions; title: 24.10. Exercises; title: 24.11. Review Question Answers; title: 25. Graph Algorithms; title: 25.1. Introduction; title: 25.2. Graph Algorithms in Ruby; title: 25.3. Searching Graphs; title: 25.4. Depth-First Search; title: 25.5. Breadth-First Search; title: 25.6. Paths in a Graph; title: 25.7. Connected Graphs and Spanning Trees; title: 25.8. Summary and Conclusion; title: 25.9. Review Questions; title: 25.10. Exercises; title: 25.11. Review Question Answers; title: 26. Glossary