二分木の3つの走査方法

二分木の探索方法には、前順探索、中順探索、後順探索の3つがあります。

  1. 先行順(Preorder Traversal):最初に根ノードを訪問し、その後左部分木を再帰的に先行順で訪問し、さらに右部分木を再帰的に先行順で訪問します。訪問順序は 根-左-右 です。
  2. 中順巡回(Inorder Traversal):まず左の子木を再帰的に中順に巡回し、次に根ノードにアクセスし、最後に右の子木を再帰的に中順に巡回します。巡回順序は、左-根-右です。
  3. 後行走 (Postorder Traversal): 最初に左部分木を再帰的に後行走し、次に右部分木を再帰的に後行走し、最後に根ノードを訪問します。訪問順序は左-右-根です。

上記の3種類のトラバーサル方法は、再帰または反復を使って実装することができます。再帰方法は比較的簡単ですが、反復方法はスタックを利用して実装する必要があります。

その他には、階層順に木のノードを上から下に、左から右に順番に訪れる「階層順訪問(Level Order Traversal)」という方法もあります。階層順訪問はキューを使用して実現されます。

bannerAds