Algorithms

Linked List
Linked list is a linear data structure that consists of a sequence of elements, each element points to the next element in the sequence. This page shows the process of insert, delete and search for elements in the linked list.
Try
Heap
Visualization of heap operations, including insertions and deletions. Dynamically displays each step of the operation to help understand the principles of heap operations.
Try
Stack
Stack is a linear data structure that follows the Last In First Out (LIFO) principle. This page shows the process of push, pop and adjust the height of the stack.
Try
Hash Table
Hash table is a data structure that implements an associative array abstract data type, a structure that can map keys to values. This page shows the process of insert, delete and search for key-value pairs in the hash table.
Try
Dynamic Programming (Coin Change)
Visualization of the dynamic programming coin change algorithm. Set the target amount and the available coin denominations, click the step-by-step calculation button, and observe how the optimal solution is found step by step. The state transition process column of the output shows how the algorithm builds the solution of the larger problem from smaller problems.
Try
Consistent Hash Ring
The hash ring visualization of consistent hashing allows you to clearly and intuitively understand the key value allocation of consistent hashing, and add key value migration for deleting nodes. It also supports setting up virtual nodes (shadow nodes) to understand the effect of distribution balance optimization.
Try
Dijkstra Shortest Path
Given a network, you can set the weights between different nodes, and after selecting the starting point, you can calculate the shortest path to other nodes.
Try
A* Pathfinding
Visualization of the A* pathfinding algorithm. Set obstacles, start and end points in a network, and watch the pathfinding process.
Try
BFS Pathfinding
Visualization of the Breadth-First Search pathfinding algorithm. Set obstacles, start and end points in a network, and watch the pathfinding process.
Try
Trie
Trie is a tree-like data structure that is used to store a dynamic set of strings. This page shows the process of insert, delete and search for strings in the trie.
Try
Skip List
Skip list is a data structure that allows fast search within an ordered sequence of elements. This page shows the process of insert, delete and search for elements in the skip list.
Try
Bloom Filter
Bloom filter is a space-efficient probabilistic data structure that is used to test whether an element is a member of a set. This page allows you to visualize the process of adding keys to the bloom filter and checking for key existence.
Try
Rate Limit
Rate limiting is a strategy to control the rate of traffic sent or received by a network. Fixed window rate limiting and sliding window rate limiting are the most common rate limiting algorithms. This page shows the characteristics and comparison of these two algorithms.
Try
Token Bucket
Token bucket is a rate limiting algorithm that can be used to control the rate of traffic. You can set the bucket capacity, token generation rate, and request rate, and then draw the curve of successful or failed requests.
Try