<story><title>Exotic data structures</title><url>http://concatenative.org/wiki/view/Exotic%20Data%20Structures</url></story><parent_chain></parent_chain><comment><author>jandrewrogers</author><text>This is a pretty good list of data structures that are out there, that are also useful, and to which most programmers never seem to have been introduced. I regularly use variants of some of the data structures listed (plus several that did not make the list) and frequently get questions about the design and structure from programmers that have never seen them.&lt;p&gt;In practice, you can get away with knowing just a handful of data structures and most programmers do. However, when it comes time to profile it is valuable to have alternatives to what the standard libraries and implementations offer. For any given set of constraints on the intended use case and workload for a classic container, there is usually a data structure that is nearly ideal for that use case. Also, there are often neat ideas buried in some of these data structures that are worth learning for their own sake.&lt;p&gt;For the work that I do (high-performance C++) the first pass will often use the C++ STL. When we start profiling, the STL is usually among the first things that need to be replaced. Having a large number of workload optimized data structures in the toolkit for the same abstract container makes this relatively easy.</text></comment>
<story><title>Exotic data structures</title><url>http://concatenative.org/wiki/view/Exotic%20Data%20Structures</url></story><parent_chain></parent_chain><comment><author>jayferd</author><text>I would especially appreciate how one might go about implementing these in some of the concatenative languages listed there, as these kinds of data structures tend to be pointer- and memory-based, which I&apos;ve found difficult to replicate in Forth et al.</text></comment>