NOTES: - About iterator Policy/Questions: - should Iterator policy determine how it traverses the tree? - should policy determine how the items are inserted into the trees children? - should removal which causes re adjustment of the tree should something like that cause the tree to remove all nodes under that node or shift a particular node to be the parent? - Child iterator for iterating over an array. !! about child nodes !! - should a child node know what position its in with in a child array? - the advantage to doing something like this would be that if the index was set to -1 then that could mean the root. Policy behavior possibilities: when defreferencing a nodes children - skip null children - exception on null children - Crash/segmentation fault on null children. - can policy determine the behavior of my iterator? -ex say i want a const iterator could a policy make something a const_iterator thoughts: something like that might help with template metaprogramming because if an iterator would contain that policy then the compiler should know to pick a particular function and functionality of a class based on that. TODO: High level over view/ List of tasks and issues - Make an iterator class - find an implementation of a tree which has a good implementation and documentation. - Make that find a binary tree because the Red Black tree in the stl is ugly and hard to read - Move assign and copy assign operators for both the node class and the n_ary_tree class - remove all and singular removal. - Is empty function - add_child(index, value) - policy stuff required for either at or just [] - add_sibling(index, value) - policy stuff required for either at or just [] - ~node and ~n_ary_tree need to be added. - begin and end where do they go?( Which nodes ) Note Concepts required of type T - needs to be copy constructable and all of the concepts related to that. Iterator questions and notes: - should the iterator have access to return items which are with in the array of children? removal of sub trees.