Iteration Problems
nConcrete traversal method
n[], ++ (array)
nnext (linked list)
nfor (i=list.first;i!=NULL;i=i.next)   // C code
n    sum+=i.value;
nparent, children, sibling (tree)
npop (queue)
nfor (i=queue.top;i!=NULL;i=pop(queue))   // C code
n    sum+=i.value;
The first problem that I notice is that this loop really only applies to arrays.  Other data structures have their own idiomatic ways of accessing their members.  If the data structure changes, we can still use the “for” statement, but the details will have to change.