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.5 (17 reviews)
ISBN: 978-87-403-0273-8
1 edition
Pages : 197
  • Price: 69.99 kr
  • Price: €7.99
  • Price: £7.99
  • Price: ₹250
  • Price: $9.99
  • Price: 69.99 kr
  • Price: 69.99 kr

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.
Please enter your work email address.
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.
eLib
Unlock your organization's learning potential
Click here!

Corporate eLibrary

Discover our Business Solutions for employee learning

This is a Premium eBook

Bookboon Premium - Get access to over 800 eBooks - without ads

You can get free access for a month to this - and 800 other books with the Premium Subscription. You can also buy the book below

  • Start a 30-day free trial. After trial: 39.99 kr p/m
  • Start a 30-day free trial. After trial: €5.99 p/m
  • Start a 30-day free trial. After trial: £4.99 p/m
  • Start a 30-day free trial. After trial: ₹299 p/m
  • Start a 30-day free trial. After trial: $3.99 p/m
  • Start a 30-day free trial. After trial: 39.99 kr p/m
  • Start a 30-day free trial. After trial: 39.99 kr p/m
eLib
Unlock your organization's learning potential
Click here!

Corporate eLibrary

Discover our Business Solutions for employee learning

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

  1. Preface
  2. 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
  3. 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
  4. Arrays
    1. Introduction
    2. Varieties of Arrays
    3. Arrays in Ruby
    4. Review Questions
    5. Exercises
    6. Review Question Answers
  5. 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
  6. Containers
    1. Introduction
    2. Varieties of Containers
    3. A Container Taxonomy
    4. Interfaces in Ruby
    5. Review Questions
    6. Exercises
    7. Review Question Answers
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. Recurrences
    1. Introduction
    2. Setting Up Recurrences
    3. Solving Recurrences
    4. Summary and Conclusion
    5. Review Questions
    6. Exercises
    7. Review Question Answers
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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. Exercises
    8. Review Question Answers
  22. Hashing
      Introduction
    1. The Hashing Problem
    2. Hash Functions
    3. Summary and Conclusion
    4. Review Questions
    5. Exercises
    6. Review Question Answers
  23. 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
  24. 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
  25. 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
  26. 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.