二分木ビジュアライザー
インタラクティブな操作と走査アニメーションで二分木を構築・可視化・探索できます。
このツールについて
二分木ビジュアライザーは、インタラクティブな可視化を通じて二分木を構築、探索、理解できる無料のブラウザベースツールです。データ構造を初めて学ぶ方、コーディング面接の準備をしている方、アルゴリズムを教えている方など、このツールはSVGベースのキャンバスで木の操作がリアルタイムでどのように動作するかを直感的に確認できます。
このツールは2つのモードをサポートしています。**二分探索木(BST)**モードは、すべての左の子が親より小さく、右の子が親より大きいというBST不変条件を強制します。一般二分木モードは幅優先の順序でレベルごとにノードを挿入します。BSTモードでは、挿入、削除(葉ノード、子が1つの場合、子が2つの場合をin-order successorで処理)、およびアニメーション付きパスハイライトによる探索が実行できます。
4つの古典的な走査アルゴリズムが利用可能です — 通りがけ順(In-order)、行きがけ順(Pre-order)、帰りがけ順(Post-order)、レベル順(BFS) — 各アルゴリズムはステップバイステップのノードハイライト付きで、アルゴリズムが各ノードを順番に訪問する様子を視覚的に追跡できます。走査結果の配列はコントロールの下に表示されます。また、AVL回転を使用して不均衡なBSTをワンクリックで自動平衡化できます。
すべての処理はブラウザ内で完全に行われます。サーバーへのデータ送信はなく、ネットワークリクエスト、入力に対する分析、アカウント登録は一切不要です。可視化はインラインSVGでレスポンシブにレンダリングされ、デスクトップ、タブレット、スマートフォンに対応しています。
木の統計情報がリアルタイムで表示されます:高さ、ノード数、平衡かどうか、現在の構造が有効なBSTかどうか。実験用にランダムな木を生成したり、カンマ区切りの値で一括挿入することもできます。
使い方
- BST(二分探索木)または一般二分木をモードトグルで選択します。
- 入力フィールドに数値(またはカンマ区切りリスト、例:
5,3,7,1,4)を入力し、Insert をクリックまたは Enter を押します。 - Random をクリックしてランダムな木を生成するか、Clear で最初からやり直します。
- BSTモードでは、Delete フィールドで値を指定してノードを削除、Search フィールドでルートからターゲットまでの探索パスをハイライトします。
- 走査ボタン(Inorder、Preorder、Postorder、Level-order)をクリックして走査をアニメーションし、結果配列を確認します。
- Balance (AVL) をクリックしてAVL回転ロジックでBSTを自動平衡化します。
- 統計パネルで高さ、ノード数、バランス状態、BST有効性を確認します。
- Ctrl+Enter のキーボードショートカットで素早く値を挿入できます。
よくある質問
データは安全ですか?
はい。すべての木操作とレンダリングはJavaScriptとSVGを使用してブラウザ内で完全に行われます。サーバーへのデータ送信は一切なく、入力の記録や追跡もありません。
BSTモードと一般モードの違いは何ですか?
BST(二分探索木)モードは順序不変条件を強制します:左の子は常に親より小さく、右の子は常に親より大きくなります。これにより効率的な探索、削除、平衡操作が可能になります。一般モードはレベル順(幅優先)でノードを挿入し、順序制約なしで左から右に埋めていきます。
どの走査アルゴリズムがサポートされていますか?
4つの走査をサポートしています:通りがけ順(左、ルート、右)、行きがけ順(ルート、左、右)、帰りがけ順(左、右、ルート)、レベル順(BFS、上から下へレベルごと)。各走査はノードごとにアニメーションされ、アルゴリズムを視覚的に追跡できます。
AVLバランス機能はどのように動作しますか?
Balance (AVL) ボタンをクリックすると、AVL木の回転ロジックが適用され、すべてのノードで左右の部分木の高さの差が最大1になるようにBSTが再構築されます。必要に応じて単回転または二重回転(左、右、左右、右左)が実行されます。
BSTの削除はどのように動作しますか?
削除は3つのケースを処理します:(1) 葉ノードの削除は単純に削除、(2) 子が1つのノードの削除はその子で置換、(3) 子が2つのノードの削除はin-order successor(右部分木の最小ノード)を見つけ、その値をコピーし、successorを再帰的に削除します。
木の統計情報は何を意味しますか?
高さはルートから葉までの最長パスの長さです。ノード数はノードの総数です。バランスはすべてのノードで左右の部分木の高さの差が最大1であることを意味します。有効なBSTは順序不変条件がツリーのすべてのノードで成立していることを意味します。
モバイルデバイスで使用できますか?
はい。SVGキャンバスはレスポンシブで、コントロールは小さい画面では縦に積み重なります。すべてのボタンと入力でタッチ操作が機能します。