Oh, this is actually a pretty nice little list. Inspired by eatonphil, I would add AAtree and maybe a hash algorithm of some kind to the list. I have very fond memories of a friend who implemented an AA tree in the weird, dysfunctional little user scripting language for a MUCK, and used it to make a christmas tree. You would add an ornament to it (just a text string) and it would auto-balance itself to move all the “ornaments” to the right position and draw some little ASCII art of the result.
Your algorithms are ambitious! If it weren’t for times I made myself (mostly while building a standard library for SML, but also in recent database projects) I would never have even implemented my own: red black tree, aatree, hash table, binary search tree, btree and LSM tree.
I’m glad I’ve been through those exercises though.
Maybe A* belongs on that list? The first time I encountered it was in
an artificial intelligence course. I’ve ended up implementing it a
handful of times. Useful and to my mind challenging.
I feel incredibly old that about half of these (and half the honourable mentions) are simply a list of the totally normal 2nd year homework problems from my CS undergrad.
+1 for “skip list” in the honorable mentions section.
Very neat little data structure. Very cool to me that they make use of randomness in their functionality.
To me, they feel much less… artificial than trees for holding the kinds of data they do. There are various tradeoffs compared to trees (performance, implementation, concurrency, etc.) but they seem roughly comparable overall.
Oh, this is actually a pretty nice little list. Inspired by eatonphil, I would add AAtree and maybe a hash algorithm of some kind to the list. I have very fond memories of a friend who implemented an AA tree in the weird, dysfunctional little user scripting language for a MUCK, and used it to make a christmas tree. You would add an ornament to it (just a text string) and it would auto-balance itself to move all the “ornaments” to the right position and draw some little ASCII art of the result.
Your algorithms are ambitious! If it weren’t for times I made myself (mostly while building a standard library for SML, but also in recent database projects) I would never have even implemented my own: red black tree, aatree, hash table, binary search tree, btree and LSM tree.
I’m glad I’ve been through those exercises though.
Maybe A* belongs on that list? The first time I encountered it was in an artificial intelligence course. I’ve ended up implementing it a handful of times. Useful and to my mind challenging.
I feel incredibly old that about half of these (and half the honourable mentions) are simply a list of the totally normal 2nd year homework problems from my CS undergrad.
+1 for “skip list” in the honorable mentions section.
Very neat little data structure. Very cool to me that they make use of randomness in their functionality.
To me, they feel much less… artificial than trees for holding the kinds of data they do. There are various tradeoffs compared to trees (performance, implementation, concurrency, etc.) but they seem roughly comparable overall.