Category: Data Structures

Data Structures and Algorithms with Object-Oriented Design Patterns in Ruby

Author Bruno R. Preiss
Format online HTML
Price free

Create sound software designs with data structures that use modern object-oriented design patterns!

Author Bruno Preiss presents the fundamentals of data structures and algorithms from a modern, object-oriented perspective.

The text promotes object-oriented design using Ruby and illustrates the use of the latest object-oriented design patterns. Virtually all the data structures are discussed in the context of a single class hierarchy.

This framework clearly shows the relationships between data structures and illustrates how polymorphism and inheritance can be used effectively.

Continue reading

Dictionary of Algorithms and Data Structures

My image
  • Author: National Institute of Standards and Technology (NIST)
  • Format: online HTML
  • Price: free

This is a dictionary of algorithms, algorithmic techniques, data structures, archetypal problems, and related definitions, presented by the National Institute of Standards and Technology (NIST).Algorithms include common functions, such as Ackermann’s function. Problems include traveling salesman and Byzantine generals. Some entries have links to implementations and more information. Index pages list entries by area and by type.

It does not include algorithms particular to business data processing, communications, operating systems or distributed algorithms, programming languages, AI, graphics, or numerical analysis. They have a hard enough time keeping up with and covering “general” algorithms and data structures.

Data Structures

Data Structures
  • Author: Wikibooks
  • Format: online HTML
  • Price: free

This book is about the creation and analysis of efficient data structures and covers:

  • the primitive node structure;
  • asymptotic notation for mathematically discussing performance characteristics;
  • built-in arrays;
  • list structures built from either nodes or arrays;
  • iterators as an abstract model of enumerating the items in a sequence;
  • stacks and queues for computing with last-in/first-out and first-in/first-out orderings;
  • binary and general tree structures for searching or representing hierarchical relationships;
  • min and max heaps for representing ordering based on priorities;
  • graph structures for representing more general relationships between data elements;
  • hash tables for the efficient retrieval of strings and other objects; and finally
  • trade-offs between the structures, and strategies for picking the most appropriate ones.

To understand the material in this book you should be comfortable enough in a programming language to be able to work with and write your own variables, arithmetic expressions, if-else conditions, loops, subroutines (also known as functions), pointers (also known as references or object handles), structures (also known as records or classes), simple input and output, and simple recursion.

Chapters include:

  • Introduction
  • Asymptotic Notation
  • Arrays
  • List Structures and Iterators
  • Stacks and Queues
  • Trees
  • Min and Max Heaps
  • Graphs
  • Hash Tables
  • Sets
  • Tradeoffs