条件が満たされたノードの子をスキップして、バイナリ ツリーをトラバースする必要があります。
これは、ツリー ガイド クラスタリング アプローチを実装します。サブツリーの葉は、集合的に条件を満たしている場合にクラスターと見なされます。
開始する場所は事前注文トラバーサルのようですが、現在のノードのすべての子をスキップするようにアルゴリズムを変更する方法がわかりません。
アップデート
以下の 2 つの (正しい) 回答に加えて、次の Java ライブラリを使用できます。
- MyArch TreeIter - 子のスキップと動的最大トラバーサル深度を備えた汎用 (アダプター クラスを使用) ツリー トラバーサル
- Phylosoft Forester
getAllExternalDescendants
- Newick から XML へのコンバーターを使用したツリー実装