I added an article on data structures so that "Linked List" article is no longer an orphan (and it seems we also had a hast_table entry although not listed in the computers workgroup).
Alas the article has few problems among them:
- I'm not an expert on data structures. Anyone doing type theory want to have a look? Preferably without making it to theoretic.
- As all books I have on this topic are in German, I have nothing to cite.
- I vaguely remember that someone once said that once all the data structures for a problem are defined, the actual programming work is easy. Would IMHO fit nicely as a quote to the article. Does anyone know, a) who said that and b) what exactly he said?
Have fun editing around in it.
I'm a Computers editor, and I'll have a look.
Data structures are (is?) a basic topic in computer science. One of the best references I know is Thomas H. Cormen,
et. al.,
Introduction to Algorithms, 2nd ed., MIT Press, 2001, ISBN 0-262--03293-7.
I should warn you that the idea that data structures and algorithms are the basis of good computing practice is going to sound rather dated today, given that object orientation is all the rage. However, that does not mean data structures are any less fundamental! Rather, they are the a (big) part of the foundation upon which higher level constructs (lists, sets, maps, etc.) are built. Today, programmers try to achieve what is called "loose coupling" where one part of a program does not depend unnecessarily on the structure of other parts of the program. This wasn't really so back in the 1970's when Donald Knuth (one of the pioneers of the field) was writing.
Having said all that, I should throw in a plug for functional programming. Recently, there has been a lot of interesting work on data structures in functional languages like Scheme, ML and Haskell. This is perhaps a bit more surprising than it appears because one of the cardinal rules of functional languages is that the value of a function is
completely determined by its input (i.e., it is independent of any mutable state, such as what might be stored in a list or tree at a given time).