バイナリツリートラバーサル方法メモリ

  1. バイナリツリー、バイナリツリートラバーサルなどの基礎について、そして比較的単純なものの、時々ペンの質問は、以前にこのタイトルを持っているかもしれませんが、初心者が生きることのために、多くの場合、覚えていません。
  2. すなわち、層トラバーサルによって層であり、簡単に言えば時と順トラバーサル、一般的な再帰アルゴリズムの後に、前に、バイナリツリートラバーサル3つの方法があり、いくつかはまた、レベルトラバースいわゆる存在してもよいです。
  3. https://www.cnblogs.com/songwenjie/p/8955856.htmlここパイレーツdpiの、それぞれ3トラバーサルを説明します。
  4.  

    実際に、それはまた非常に簡単であるものを覚えておくことは、ルートノードの位置に応じて順番によって横断される、ルートノードは、第1のプリアンブルにおいて、ルートノードが二次である、ルートノードは、第三のフォローアップであります;

  5. (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());
            
        }
    
    }
  6. 代码就是这么简单iterator中处理分别处理根,左,右三个节点,如果根节点在第一位就是前序,在第二位就是中序,在第三位就是后序,这样子一来的话面对二叉树遍历的笔试题,脑海里默念一下这个算法就很清晰了;

おすすめ

転載: www.cnblogs.com/dreamroute/p/11261024.html