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.
TryHeap
Visualization of heap operations, including insertions and deletions. Dynamically displays each step of the operation to help understand the principles of heap operations.
TryStack
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.
TryHash 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.
TryDynamic 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.
TryConsistent 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.
TryJumpHash
Jumphash is a consistent hashing algorithm that provides a balance between the number of keys assigned to each node and the number of nodes. This page allows you to visualize the process of adding keys to the jump hash and checking for key existence.
TryHanoi Tower
Experience the classic Tower of Hanoi puzzle in an interactive web application. Challenge yourself with adjustable disk numbers, choose between manual and automatic modes, and receive hints to solve the puzzle.
TryDijkstra 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.
TryA* Pathfinding
Visualization of the A* pathfinding algorithm. Set obstacles, start and end points in a network, and watch the pathfinding process.
TryBFS Pathfinding
Visualization of the Breadth-First Search pathfinding algorithm. Set obstacles, start and end points in a network, and watch the pathfinding process.
TryTrie
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.
TrySkip 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.
TryBinary Search Tree Visualization
Visualize the binary search tree algorithm. You can set the number of nodes and randomization method, insert, search, and delete nodes to understand how binary search trees work.
TryBloom 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.
TryRate 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.
TryToken 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