mirror of
https://github.com/krahets/hello-algo.git
synced 2026-08-18 22:40:59 +00:00
deploy
This commit is contained in:
@@ -4715,12 +4715,12 @@
|
||||
<p>定義に従うと、<code>preorder</code> と <code>inorder</code> はいずれも 3 つの部分に分けられます。</p>
|
||||
<ul>
|
||||
<li>前順走査:<code>[ 根ノード | 左部分木 | 右部分木 ]</code> ,例えば上図の木は <code>[ 3 | 9 | 2 1 7 ]</code> に対応します。</li>
|
||||
<li>中順走査:<code>[ 左部分木 | 根ノード | 右部分木 ]</code> ,例えば上図の木は <code>[ 9 | 3 | 1 2 7 ]</code> に対応します。</li>
|
||||
<li>中順走査:<code>[ 左部分木 | 根ノード | 右部分木 ]</code> ,例えば上図の木は <code>[ 9 | 3 | 1 2 7 ]</code> に対応します。</li>
|
||||
</ul>
|
||||
<p>上図のデータを例にすると、下図の手順によって分割結果を得られます。</p>
|
||||
<ol>
|
||||
<li>前順走査の先頭要素 3 が根ノードの値です。</li>
|
||||
<li>根ノード 3 の <code>inorder</code> におけるインデックスを探すと、そのインデックスを用いて <code>inorder</code> を <code>[ 9 | 3 | 1 2 7 ]</code> に分割できます。</li>
|
||||
<li>根ノード 3 の <code>inorder</code> におけるインデックスを探すと、そのインデックスを用いて <code>inorder</code> を <code>[ 9 | 3 | 1 2 7 ]</code> に分割できます。</li>
|
||||
<li><code>inorder</code> の分割結果から、左部分木と右部分木のノード数はそれぞれ 1 と 3 であることがわかり、したがって <code>preorder</code> を <code>[ 3 | 9 | 2 1 7 ]</code> に分割できます。</li>
|
||||
</ol>
|
||||
<p><img alt="前順走査と中順走査で部分木を分割する" class="animation-figure" src="../build_binary_tree_problem.assets/build_tree_preorder_inorder_division.png" /></p>
|
||||
|
||||
Reference in New Issue
Block a user