Data Structure Visualizations

reveal.js plugin


Created by Kostas Chatzikokolakis using David Galles' visualization library.

Demo


  • Shows many of the provided animations
    • full list is available here
  • Each action is shown just once (to keep it short)
  • Actions are reveal.js fragments
    • easy to create arbitrary sequences

Navigation


right / left : move one action at a time.

down / up : same (vertical slides)

Space,N / P : animate one step at a time.

Basics

Stack: Array Implementation

Push

Pop

Stack using Linked List

Push

Pop

Queue using Array

Enqueue

Dequeue

Queue using Linked List

Enqueue

Dequeue

Trees

Binary Search Trees

Insert

Delete

Find

Print

AVL Trees

Insert

Delete

Find

Print

Red-Black Trees

Insert

Delete

Find

Print

Splay Trees

Insert

Delete

Find

Print

Trie (Prefix Tree)

Insert

Delete

Find

Print

Radix Tree (Compact Trie)

Insert

Delete

Find

Print

Ternary Search Tree

Insert

Delete

Find

Print

B Trees

Insert

Delete

Find

Print

B+ Trees

Insert

Delete

Find

Print

Hashing

Open Hash Tables (Closed Addressing)

Insert

Delete

Find

Closed Hash Tables (Open Addressing)

Insert

Delete

Find

Closed Hash Tables, using buckets

Insert

Delete

Find

Heaps

Heaps

Insert

Remove smallest

Build heap

Binomial Queues

Insert

Remove smallest

Fibonacci Heaps

Insert

Remove smallest

Leftist Heaps

Insert

Remove smallest

Skew Heaps

Insert

Remove smallest

Graph Algorithms

Breadth-First Search

BFS from 1

Depth-First Search

DFS from 1

Connected Components

Connected components

Dijkstra's Shortest Path

Dijkstra from 1

Prim's Minimum Cost Spanning Tree

Prim from 1

Topological Sort (Indegree)

Topological Sort

Topological Sort (DFS)

Topological Sort

Floyd-Warshall All-Pairs Shortest Path

Floyd-Warshall

Kruskal Minimum Cost Spanning Tree

Kruskal

Recursion

Factorial

Factorial(3)

Reversing a String

Reverse("abc")

N-Queens Problem

Qeens(4)

PDF Export


It's supported, just follow the reveal.js instructions

Each action (fragment) is exported in a separate page

A PDF export of this demo is available here