ツリー構造を深さ優先で順にたどって各ノードで何か処理をする、
実際の処理に例えますと、子孫を持ったフォルダの削除なんかでしょうか。

このような処理で、全体の処理に対する進捗状況を随時更新して示したいと
考えています。例を続けますと、まさに Windows エクスプローラでの削除中の
進捗表示のようなものです。

もちろん、処理の前に子孫をトラバースしきって数を全部数えれば正確にはなりますが、
それでは負荷が大きすぎるので、何かいいアルゴリズムなどが無いか悩んでいます。
逆に、数えないことである程度概算になったり、進捗率が戻ったりしても構いません。