Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Open Data StructuresPat Morin

    Open Data Structures

    Pat Morin · 2013

    "Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs. Focusing on a mathematically rigorous approach that is fast, practical, and efficient, Morin clearly and briskly presents instruction along with source code. Analyzed and implemented in Java, the data structures presented in the book include stacks, queues, deques, and lists implemented as arrays and linked-lists; space-efficient implementations of lists; skip lists; hash tables and hash codes; binary search trees including treaps, scapegoat trees, and red-black trees; integer searching structures including binary tries, x-fast tries, and y-fast tries; heaps, including implicit binary heaps and randomized meldable heaps; graphs, including adjacency matrix and adjacency list representations; and B-trees. A modern treatment of an essential computer science topic, Open Data Structures is a measured balance between classical topics and state-of-the art structures that will serve the needs of all undergraduate students or self-directed learners."--Open Textbook Library.

    Computer Science
    Open LibraryAmazon
    Stats for nerds
    11recommend
    12mentions
    12people
    2012–2024years
    92% recommend8% neutral

    Mentions per year

    2012201420162018202020222024

    What Hacker News says

    1. emmanueloga_Jan 2024
      From all these I feel like the best intro is Sedgewick & Wayne. CLRS is less solo-learner friendly, in my opinion. I skimmed Erickson and I liked it too.

      In the "friendly+actually-useful" category, you missed "Open Data Structures" [1] ... I think it has one of the best descriptions of trees, including B-Trees which seem to be only superficially described in other books. The "Think" series is also pretty good and covers more than just algorithms [2].

      TAOCP, Okasaki, Bird: these feel really academic and/or less useful for industry work. Reading HTDP wasn't as useful to me, at least: I feel like Felleisen's books describe what he "imagines" would be a good way to write software on a "real" job :-p (non-academic setting).

      Skiena: I have mixed feelings about it... It seems to have gained popularity since Steve Yegge's blog post about Google interviews, but imho many concepts in that book are better explained elsewhere. I suppose the intended purpose of the book was to serve as a reference and an index to other resources. However, it often refers to sources that are 10 years old or older, academic implementations that could be challenging to apply in a real job setting, or things that are no longer available online afaict (e.g., LEDA), or hard to read papers, most of which lack a working implementation of the described concepts, etc. I wonder if anybody can really vouch for it or have a personal anecdote of the book being useful or enjoyable.

      --

      1: https://github.com/patmorin/ods

      2: https://greenteapress.com/wp/

      thread
    2. sargstuffSep 2022
      Original request bit wide open on subject domain/topic subdomains.

      aka CS AI; CS programming language implimentation; implimenting a database engine

      Subject domain bit wide, but assuming 1-2yr computer science degree, biased

      towards lisp related data structures / algorithms (aka recursive tree data structures & algorithms).

      So, no distinction between metadata vs. structual storage unless noted.

      Anything beyond that tends towards masters & upper level undergraduate level material. aka review the implimentation of a programming language for algorithm & data structure usage per language features.

      aka Lisp in Small Pieces by Christian Queinnec; ; https://github.com/aalhour/awesome-compilers; On Lisp by Paul Graham; Let over Lambda by Doug Hoyte; C 'macro's pushed to maximum effect : https://libcello.org/

          Left out Comparison of languages; Transform from lang a to lang b; and language implimentation as discussions tend to assume masters / upper level undergraduate knowledge
      
      ;;; Basic groupings : 1) theory; 2) learning & training problems; 3) algorithm book on-line ; 4) notational theory

      ;;;* 1) Theory:

         ** Category Theory for Programmers by Bartosz Milewski
      
         ** Regular expressions
      
         ** subject of meta-programming : https://en.wikipedia.org/wiki/Metaprogramming
      
         ** subject of meta-modeling : https://en.wikipedia.org/wiki/Metamodeling
      
         ** programing pardigms : https://en.wikipedia.org/wiki/Programming_paradigm
      
         ** programning language patterns : https://en.wikipedia.org/wiki/Software_design_pattern
      
      ;;;* 2) Learning / Training problems:

         Lots of non-lisp language training problems sites.
      
         Other than go and try it in lisp language of choice, perhaps also
      
         use a <language> to lisp or lisp to <language> for hints if stuck.
      
         ** language & non-language specific coding problems : https://adriann.github.io/programming_problems.html
      
             -- a few links from adriann.githupb.io:
      
             -- https://www.spoj.com/problems/classical/sort=0,start=500
      
             -- https://www.ic.unicamp.br/~meidanis/courses/mc336/problemas-lisp/L-99_Ninety-Nine_Lisp_Problems.html
      
             -- https://rosettacode.org/wiki/Category:Programming_Tasks
      
         ** https://lispcookbook.github.io/cl-cookbook/
      
         ** meta-algorithms site : https://the-algorithms.com
      
         ** https://www.geeksforgeeks.org/data-structures/
      
         ** https://www.geeksforgeeks.org/advanced-data-structures/?ref=gcse
      
      ;;* 3) algorithm book (on-line):

         ** Programming Algorithms in Lisp by VsevolodDomkin
      
         ** Competative Programming : https://cses.fi/book/book.pdf
      
         ** Algorithms by Jeff Erickson (non-lisp bent): https://jeffe.cs.illinois.edu/teaching/algorithms/
      
         ** Open Data Structures : https://opendatastructures.org/ods-python/
      
      ;;* 4) Notational stuff:

        ** Ebnf  https://www.gimtec.io/articles/ebnf/ (check out the further readings!)
      
        ** awesome syntax-tree : https://github.com/syntax-tree/awesome-syntax-tree
      
        ** church encoding : https://en.wikipedia.org/wiki/Church_encoding
      
        ** mogensen-scott encoding : https://en.wikipedia.org/wiki/Mogensen%E2%80%93Scott_encoding`
      
        ** lambda calculus : https://en.wikipedia.org/wiki/Lambda_calculus
      
        ** Combinators : https://github.com/loophp/combinator
      thread
    3. WillDaSilvaNov 2021
      I would recommend Open Data Structures: https://opendatastructures.org/

      It's available for free online, or if you'd like you can buy a physical copy. It's got 14 chapters that take you through a variety of data structures, introduces you to the theory behind them, and teaches you the basics of analyzing them.

      I've done many of the exercises from this book, and found them useful for learning the topic.

      thread
    4. lightveilJun 2021
      I have recently been using the Linear Algebra book by Jim Hefferon to study the subject. This is because I'm taking a linear algebra course in college, I am visually impaired, and the books I get from college are literally unusable.

      As a person who has to use a Screen Reader, math in PDFs is almost impossible to read for me. The problem is almost insurmountable if the PDF is a collection of images, but even if it is a LaTeX-generated PDF, reading anything but the simplest of equations is very, very hard. In these cases, having the LaTeX source to read is a godsend.

      To the authors who publish the source of their books: thank you, thank you. I cannot express how grateful I am. To anyone who is related to /working in the publisher space: it would be incredibly useful if there was a process to get the LaTeX source of books upon request, although I understand how copyrights/etc might make this difficult.

      Some other books I would like to point out for being open source: Apex Calculus, Open Data Structures.

      thread
    5. jagger27Dec 2020
      https://opendatastructures.org/ is quite good.
      thread
    6. jeffericksonJan 2019
      Yes, I have thought about making it into an open-source project, like Pat Morin did with his Open Data Structures textbook, or Boaz Barak with his Modern Complexity Theory textbook. (Both highly recommended, BTW.)

      But I'm hesitant to release the LaTeX source files in their current (rather grungy) form. Too much of a control freak, I guess. Maybe for the next edition.

      Also, the figures are all in a closed file format (OmniGraffle). In principle, I could convert everything to an open-source format like svg, but (0) converting everything would be hell, (1) LaTeX doesn't understand svg files directly, (2) in principle, I can connect latex to inkscape to convert svg to pdf, but the translation is always imprfect, (3) using Inkscape makes me want to tear my hair out, and (4) I'm a control freak.

      And don't even talk to me about tikz.

      thread

    Related

    Cover of Joe Celko's Trees and Hierarchies in SQL for Smarties,
    2013–2025

    Joe Celko's Trees and Hierarchies in SQL for Smarties,

    Joe Celko
    5 recommend · 6
    Cover of Data structures
    2018–2019

    Data structures

    Richard F. Gilberg
    2 recommend · 2
    Cover of Advanced data structures
    2016–2021

    Advanced data structures

    Peter Brass
    3 recommend · 4
    Cover of Purely functional data structures
    2007–2026

    Purely functional data structures

    Chris Okasaki
    87 recommend · 209
    Cover of A Common-Sense Guide to Data Structures and Algorithms
    2017–2025

    A Common-Sense Guide to Data Structures and Algorithms

    Jay Wengrow
    9 recommend · 14
    Cover of Data structures and algorithms in Java
    2008–2022

    Data structures and algorithms in Java

    Adam Drozdek
    3 recommend · 8
    Cover of Algorithms and data structures
    2008–2026

    Algorithms and data structures

    Niklaus Wirth
    8 recommend · 20
    Cover of Foundations of multidimensional and metric data structures
    2009–2026

    Foundations of multidimensional and metric data structures

    Hanan Samet
    11 recommend · 12