例えば
[1,2,3,4] ← これをイテレートするのがイテレータだろ?

ツリーは
[1,2,[3,4,[5,6]]] ← これをイテレートしたいのが作りたいイテレータだろ?


下のはイテレータと表現するまでもなくプログラム中でツリー構造が必要になって、
「ツリークラス」ってのを定義した事あれば、そんなのは標準実装しているレベルのものだから、わざわざツリーのイテレータなんていう半端なものは誰も作らない

作る順序的にまずはイテレータのツリー化じゃなくて、ツリークラスの定義
考えが追いつかないなら好きな順序で作れば良いけど