I took the advice of others on this list and attempted to read Stroustrup's 'Phone Book'. I believe I've learned a lot thus far, but I'm still in the dark on many issues. It has come to pass that after learning to write the cannonical 'hello world' in a given language, my next self-inflicted pedagogical exarcise is to write some kind of recursive data structure representation of a binary tree. The simple version of the data structure is something like: struct Node { char * data; Node * left_child; Node * right_child; }; I actually created code that used something very similar to this several winters past in C++. As it turns out, I was merely writing 'C' code with some C++ I/O features added. I'm now attempting something similar using STL and real OO in C++. A good example of the kind of structure I'm trying to create would be a simple file system, or XML document tree. The basic idea is this: Node[*Node][*Node][*Node][*Node][...][*Node] | | | | ... | | | | | V | | | V Node[*Node][*Node][...][*Node] | | V Node[*Node][*Node][*Node][*Node][...][*Node] | V Node[*Node][*Node][*Node][*Node][...][*Node] V Node[*Node][*Node][*Node][*Node][...][*Node] Node[*Node][*Node][*Node][*Node][...][*Node] Each node would have it's own representative data such as name, state(e.g., expanded || collapsed, date of creation), as well as a collection of children. For various reasons I attempted to accomplish this with a std::map rather than a std::vector, or similar. A vector may actually be more tractible, and appropreate for this task. In either case, I am at a loss for how to create such a recursive tree using the STL. Does anybody understand my objective? If so, do you know of an approach to solving this problem with an STL container? I haven't finished Stroustrup's book, so I may have an good example sitting right here on my desk. Steven