I think the data structure with regard to memory allocation depends more on the sparcity of the data. ie an array will always have memory allocated to the upper bound, a hash will only have memory allocated when a cell is referenced (peeked or poked). I'm thinking 'complex data structures' when i say this (hoh, aoa, hoa et al..)