// データ楽 — Data Structure Visualizer

データ構造は、
動きで分かる。

データ構造を「読む」のではなく「動きで見て理解する」可視化アプリ。 スタック・キュー・木・ハッシュテーブルといった抽象概念が、操作に応じて構造そのものが変形するアニメーションで立ち上がります。 比較はオレンジ、対象は緑。瞬間移動はさせず、積む・つなぐ・探すの過程をそのまま見せます。

v2.1.1 基礎4 / 応用4 無料 日本語 / English 情報処理技術者試験の学習に

データ楽のハッシュテーブル画面。7つのバケットにチェイン法でキーが並んでいる

$ ハッシュで衝突を見る — HASH TABLE

7つのバケットとチェイン法。h(k) = k mod 7 で行き先が一発で決まり、同じバケットに当たったキーはチェインの末尾につながる。「平均 O(1)」の理由と、衝突したときに何が起きるかが目に入ります。

  1. 01挿入する。キーがハッシュ関数を通り、対象のバケットがオレンジに光る。
  2. 02衝突する。すでに埋まっていれば、チェインの末尾に追加。同じバケットにつながっていく様子が見えます。
  3. 03探索する。バケットを一発で特定してから、チェインを1つずつたどって目的のキーを探す。
  4. 04ログを読む。どのバケットに入ったか、衝突したか、チェインを何個たどったかは操作ログに残ります。
  dataraku hash — 例
$ 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 個たどって発見

$ 主な機能 — FEATURES

読むのではなく、動かして見る。値を入れて、取り出して、たどって、もう一度。

BASICS

基礎4種 — 積む・並べる・つなぐ

スタックの後入れ先出し、キューの先入れ先出し、配列の挿入・削除で起きる後続のシフト、連結リストの矢印の繋ぎ替え。基本の操作を動きで確かめます。

ADVANCED

応用4種 — 分ける・登る・跳ぶ・繋ぐ

大小比較で左右に振り分けて落ちる二分探索木、親子を入れ替えて上下する最大ヒープ、バケットへ跳ぶハッシュテーブル、BFS で広がる無向グラフ。

O(n)

計算量を体感で

配列はインデックスで O(1) アクセス、連結リストは先頭から1ノードずつたどって O(n)。同じ「k 番目を見る」でも、かかる手間の違いが動きで分かります。

LOG

操作ログ

「62 を探索 — 根から 6 回の比較で発見」「95 を挿入 — 親と比べて上へ (up-heap)」。何が起きたかを、画面下のログで1行ずつ振り返れます。

INFO

構造ごとの解説

ⓘ ボタンで仕組み・計算量(アクセス / 探索 / 挿入 / 削除)・長所と短所・現実での使われ方を確認。アル楽のどのアルゴリズムとつながるかも紹介します。

ADS

可視化中は広告を出さない

可視化の画面には広告を一切置きません。バナーは構造選択画面と解説画面の下部だけ。全画面広告は、別のデータ構造に切り替えて開いたときにだけ、間隔をあけて表示することがあります。全機能を無料で使えます。

$ legend

通常 比較中・挿入先 対象・発見

$ 収録データ構造 — STRUCTURES

基本情報技術者試験などで問われる定番の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 で近い順に広がる歩きを見る

$ アル楽と一緒に — WITH ARURAKU

楽シリーズ 情報系の第2弾。第1弾 アル楽(アルゴリズム可視化) と組み合わせて、「処理の動き」と「その処理が乗る土台 = 構造」を両輪で学べます。ヒープはヒープソートの土台、グラフは BFS / DFS・ダイクストラ法の舞台です。

$ こんな方に — FOR

studentsプログラミングを学び始めた学生・初学者
exam基本情報技術者試験などの試験対策に
engineersデータ構造を図で理解し直したいエンジニア
curious動くものを眺めるのが好きな方

$ スクリーンショット — GALLERY