基礎4種 — 積む・並べる・つなぐ
スタックの後入れ先出し、キューの先入れ先出し、配列の挿入・削除で起きる後続のシフト、連結リストの矢印の繋ぎ替え。基本の操作を動きで確かめます。
// データ楽 — Data Structure Visualizer
データ構造を「読む」のではなく「動きで見て理解する」可視化アプリ。 スタック・キュー・木・ハッシュテーブルといった抽象概念が、操作に応じて構造そのものが変形するアニメーションで立ち上がります。 比較はオレンジ、対象は緑。瞬間移動はさせず、積む・つなぐ・探すの過程をそのまま見せます。
7つのバケットとチェイン法。h(k) = k mod 7 で行き先が一発で決まり、同じバケットに当たったキーはチェインの末尾につながる。「平均 O(1)」の理由と、衝突したときに何が起きるかが目に入ります。
$ dataraku hash insert 58 24 94 52 key h(k)=k mod 7 bucket 58 2 [2] 58 24 3 [3] 24 94 3 collision [3] 24 → 94 52 3 collision [3] 24 → 94 → 52 $ dataraku hash search 52 [3] 24 → 94 → 52 ✓ found # チェインを 3 個たどって発見
読むのではなく、動かして見る。値を入れて、取り出して、たどって、もう一度。
スタックの後入れ先出し、キューの先入れ先出し、配列の挿入・削除で起きる後続のシフト、連結リストの矢印の繋ぎ替え。基本の操作を動きで確かめます。
大小比較で左右に振り分けて落ちる二分探索木、親子を入れ替えて上下する最大ヒープ、バケットへ跳ぶハッシュテーブル、BFS で広がる無向グラフ。
配列はインデックスで O(1) アクセス、連結リストは先頭から1ノードずつたどって O(n)。同じ「k 番目を見る」でも、かかる手間の違いが動きで分かります。
「62 を探索 — 根から 6 回の比較で発見」「95 を挿入 — 親と比べて上へ (up-heap)」。何が起きたかを、画面下のログで1行ずつ振り返れます。
ⓘ ボタンで仕組み・計算量(アクセス / 探索 / 挿入 / 削除)・長所と短所・現実での使われ方を確認。アル楽のどのアルゴリズムとつながるかも紹介します。
可視化の画面には広告を一切置きません。バナーは構造選択画面と解説画面の下部だけ。全画面広告は、別のデータ構造に切り替えて開いたときにだけ、間隔をあけて表示することがあります。全機能を無料で使えます。
$ legend
基本情報技術者試験などで問われる定番の8種を、基礎4種・応用4種に分けて収録しています。
| 区分 | データ構造 | 計算量(代表) | 見どころ |
|---|---|---|---|
| 基礎 | スタック | push / pop O(1) | 後入れ先出し (LIFO)。最後に積んだものから取り出す |
| 基礎 | キュー | enqueue / dequeue O(1) | 先入れ先出し (FIFO)。入口と出口が分かれた行列 |
| 基礎 | 配列 | アクセス O(1) / 挿入 O(n) | インデックスで一発アクセス。挿入・削除で後ろがシフトする |
| 基礎 | 連結リスト | たどる O(n) | ノードを矢印でつなぐ。挿入・削除は矢印の繋ぎ替え |
| 応用 | 木(二分探索木) | 探索 O(log n) 平均 | 大小比較で左右に振り分けながら定位置へ |
| 応用 | ヒープ(最大ヒープ) | 挿入 / 取り出し O(log n) | 完全二分木。up-heap / down-heap で親子が入れ替わる |
| 応用 | ハッシュテーブル | 探索 O(1) 平均 | 7バケット + チェイン法。h(k) = k mod 7 で衝突を可視化 |
| 応用 | グラフ(無向) | BFS O(V+E) | ノードとエッジを追加し、BFS で近い順に広がる歩きを見る |
楽シリーズ 情報系の第2弾。第1弾 アル楽(アルゴリズム可視化) と組み合わせて、「処理の動き」と「その処理が乗る土台 = 構造」を両輪で学べます。ヒープはヒープソートの土台、グラフは BFS / DFS・ダイクストラ法の舞台です。