Skip navigation

Bookboon.com Download free eBooks and textbooks

Choose a category

Concise Notes on Data Structures and Algorithms

Ruby Edition

Concise Notes on Data Structures and Algorithms
4.7 (15 reviews)
ISBN: 978-87-403-0273-8
1 edition
Pages : 197
Price: Free

Download for FREE in 4 easy steps...

We are terribly sorry, but in order to download our books or watch our videos, you will need a browser that allows JavaScript.
After entering your email address, a confirmation email will be sent to your inbox. Please approve this email to receive our weekly eBook update. We will not share your personal information with any third party.

This is a Premium eBook - get it free for 30 days

You can also read this in Bookboon.com Premium

Summary

Concise Notes on Data Structures and Algorithms: Ruby Edition is a text for a standard foundational course in the topic.

300+ Business books exclusively in our Premium eReader

  • No adverts
  • Advanced features
  • Personal library
More about Premium

Buy this eBook

Buy now

Subscribe to all 800+ eBooks

Start free trial 30 day FREE trial

About the book

  1. Description
  2. Content
  3. About the Author

Description

Concise Notes on Data Structures and Algorithms: Ruby Edition is a text for a standard foundational course in the topic. It emphasizes abstract data types and covers standard containers, algorithm analysis, sorting and searching, hashing, binary search trees, and graphs. Ruby is used for code examples and exercises, but not taught in the book. Code for the book is available on the web. The text presents its topics in short, readable chapters that still provide pedagogical support in the form of examples, review question and answers, exercises, and a glossary.

Content

  • Preface
  1. Introduction
    1. What Are Data Structures and Algorithms?
    2. Structure of the Book
    3. The Ruby Programming Language
    4. Review Questions
    5. Exercises
    6. Review Question Answers
  2. Built-In Types
    1. Simple and Structured Types
    2. Types in Ruby
    3. Symbol: A Simple Type in Ruby
    4. Range: A Structured Type in Ruby
    5. Review Questions
    6. Exercises
    7. Review Question Answers
  3. Arrays
    1. Introduction
    2. Varieties of Arrays
    3. Arrays in Ruby
    4. Review Questions
    5. Exercises
    6. Review Question Answers
  4. Assertions
    1. Introduction
    2. Types of Assertions
    3. Assertions and Abstract Data Types
    4. Using Assertions
    5. Assertions in Ruby
    6. Review Questions
    7. Exercises
    8. Review Question Answers
  5. Containers
    1. Introduction
    2. Varieties of Containers
    3. A Container Taxonomy
    4. Interfaces in Ruby
    5. Review Questions
    6. Exercises
    7. Review Question Answers
  6. Stacks
    1. Introduction
    2. The Stack ADT
    3. The Stack Interface
    4. Using Stacks—An Example
    5. Contiguous Implementation of the Stack ADT
    6. Linked Implementation of the Stack ADT
    7. Summary and Conclusion
    8. Review Questions
    9. Exercises
    10. Review Question Answers
  7. Queues
    1. Introduction
    2. The Queue ADT
    3. The Queue Interface
    4. Using Queues—An Example
    5. Contiguous Implementation of the Queue ADT
    6. Linked Implementation of the Queue ADT
    7. Summary and Conclusion
    8. Review Questions
    9. Exercises
    10. Review Question Answers
  8. 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
  9. Collections
    1. Introduction
    2. Iteration Design Alternatives
    3. The Iterator Design Pattern
    4. Iteration in Ruby
    5. Collections, Iterators, and Containers
    6. Summary and Conclusion
    7. Review Questions
    8. Exercises
    9. Review Question Answers
  10. Lists
    1. Introduction
    2. The List ADT
    3. The List Interface
    4. An Example of Using Lists
    5. Contiguous Implementation of the List ADT
    6. Linked Implementation of the List ADT
    7. Implementing Lists in Ruby
    8. Summary and Conclusion
    9. Review Questions
    10. Exercises
    11. Review Question Answers
  11. 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 Answers
  12. 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
  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. Sets
    1. Introduction
    2. The Set ADT
    3. The Set Interface
    4. Contiguous Implementation of Sets
    5. Linked Implementation of Sets
    6. Summary and Conclusion
    7. Review Questions
    8. Exercises
    9. Review Question Answers
  20. 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
  21. 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
  22. Hashed Collections
    1. Introduction
    2. Hash Tablets
    3. HashSets
    4. HashMaps
    5. Implementing Hashed Collections in Ruby
    6. Summary and Conclusion
    7. Review Questions
    8. Exercises
    9. Review Question Answers
  23. Graphs
    1. Introduction
    2. Directed and Undirected Graphs
    3. Basic Terminology
    4. The Graph ADT
    5. The Graph Class
    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
  24. Graph Algorithms
    1. Introduction
    2. Graph Algorithms in Ruby
    3. Searching Graphs
    4. Depth-First Search
    5. Breadth-First Search
    6. Paths in a Graph
    7. Connected Graphs and Spanning Trees
    8. Summary and Conclusion
    9. Review Questions
    10. Exercises
    11. Review Question Answers
  25. Glossary

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.

This website uses cookies to improve user experience. By using our website you consent to all cookies in accordance with EU regulation.