DataStructures

'Data Structures: starting to designing your program'

=Introduction=

If your data structures effectively represent your area of modelling interest, the logic and control flow of your code will be naturally constrained and hence simpler and more robust to bugs.

svn co http://soutce.ggy.bris.ac.uk/subversion-open/data-structures/trunk ./data-structures



=Stacks=

cd examples/example1 make ./simple-stack.exe


 * The deliberately constrained nature of the stack gives elements a natural order.
 * Elements added early remain in the stack the longest.



=Linked Lists=

cd ../example2 make ./simple-LL.exe


 * Can grow with more data
 * Can insert items in the middle of the list (e.g. can store items in order which arrive out of order)



=Hash Tables=

cd examples/example1 make ./simple-hash.exe


 * Content addressable storage.
 * Must manage potential collisions.



=Trees=

Quadtrees
http://en.wikipedia.org/wiki/Quadtree

A quadtree could be used to store:


 * A sparse matrix (Can think of an image this way)
 * Variable resolution data (parent's value is the average of its children's values)

=The C++ Standard Template Library=

Pretty much rocks. And saves you the hassle of writing all these data structures yourself.