- バイナリツリー、バイナリツリートラバーサルなどの基礎について、そして比較的単純なものの、時々ペンの質問は、以前にこのタイトルを持っているかもしれませんが、初心者が生きることのために、多くの場合、覚えていません。
- すなわち、層トラバーサルによって層であり、簡単に言えば時と順トラバーサル、一般的な再帰アルゴリズムの後に、前に、バイナリツリートラバーサル3つの方法があり、いくつかはまた、レベルトラバースいわゆる存在してもよいです。
- https://www.cnblogs.com/songwenjie/p/8955856.htmlここパイレーツdpiの、それぞれ3トラバーサルを説明します。
-
実際に、それはまた非常に簡単であるものを覚えておくことは、ルートノードの位置に応じて順番によって横断される、ルートノードは、第1のプリアンブルにおいて、ルートノードが二次である、ルートノードは、第三のフォローアップであります;
- (Javaバージョン)は次のようにアルゴリズムの再帰呼び出しは次のようになります。
import lombok.Data; @Data public class Node<T> { private T data; private Node<T> left; private Node<T> right; public static void main(String[] args) { Node<String> root = new Node<>(); iterator(root); } public static <T> void iterator(Node<T> root) { if (root == null) return; System.err.println(root.getData()); iterator(root.getLeft()); iterator(root.getRight()); } }
- 代码就是这么简单iterator中处理分别处理根,左,右三个节点,如果根节点在第一位就是前序,在第二位就是中序,在第三位就是后序,这样子一来的话面对二叉树遍历的笔试题,脑海里默念一下这个算法就很清晰了;
バイナリツリートラバーサル方法メモリ
おすすめ
転載: www.cnblogs.com/dreamroute/p/11261024.html
おすすめ
ランキング