ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
이진 탐색 트리 연산·순회를 인터랙티브하게 시각화, 애니메이션은 실제 알고리즘 실행 기록을 재생합니다
Interactive Binary Search Tree operations and traversal visualizer. Every animation is a replay of events recorded while the real algorithm ran.
교육C++ · JavaScriptGitHub @AlanGilchrist온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Interactive Binary Search Tree Operations and Traversal Visualizer: a Data Structures and Algorithms mini project in C++17 with Qt 6 Widgets, with a matching web version that runs in any modern browser.
VisualDSA runs real BST algorithms on a real C++ tree and replays every step they took: comparisons, the path from the root, deletion cases, the inorder successor, depth-first traversal order and the breadth-first queue. Every animation is a replay of events recorded while the algorithm ran. Nothing is drawn that the algorithm did not do.
| Operation | What you see |
|---|---|
| Insert | Each comparison, the branch taken, the empty slot where the key lands, then the new node growing in. Duplicates are rejected. |
| Delete | Search, identification of case 1 (leaf), case 2 (one child) or case 3 (two children), the walk to the inorder successor, unlinking and key replacement. |
| Search | Root-to-node path, a live 45 > 30 comparison badge, found (green) or the null pointer where the search ended (red). |
| Depth-first (DFS) | Inorder, preorder and postorder with recursion entry and output steps, order badges on nodes and a progressive output strip. |
| Breadth-first (BFS) | Level-order traversal driven by a real queue: each dequeue, output and enqueue is a step, waiting nodes get a dashed ring, and a QUEUE strip shows the queue front to back. |
Also included:
| Tool | Version | Notes |
|---|---|---|
| C++ compiler | C++17 | Tested with MSVC 19.44 (Visual Studio 2022 Build Tools). GCC 9+ and Clang 10+ should also work. |
| Qt | 6.2 or newer (Widgets, Test) | Tested with Qt 6.8.3, msvc2022_64. |
| CMake | 3.22 or newer | |
| Generator | Ninja or Visual Studio 17 2022 | Ninja ships with Visual Studio. |
Open the x64 Native Tools Command Prompt for VS 2022. This puts cl, cmake and ninja on PATH. Then run:
cd VisualDSA
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=C:\Qt\6.8.3\msvc2022_64
cmake --build build
ctest --test-dir build --output-on-failure
build\bin\VisualDSA.exe
Replace C:\Qt\6.8.3\msvc2022_64 with your own Qt installation folder: the one that contains bin\qmake.exe.
You can use the Visual Studio generator instead of Ninja:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_PREFIX_PATH=C:\Qt\6.8.3\msvc2022_64
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failure
build\bin\Release\VisualDSA.exe
On Windows, a post-build step runs windeployqt, which copies the Qt DLLs next to VisualDSA.exe so it can be double-clicked. Turn this off with -DVISUALDSA_DEPLOY_QT=OFF.
If you do not have Qt yet, the open-source aqtinstall tool can download the official binaries:
python -m pip install aqtinstall
python -m aqt install-qt windows desktop 6.8.3 win64_msvc2022_64 -O C:\Qt
sudo apt install build-essential cmake ninja-build qt6-base-dev # Ubuntu 22.04+
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failure
./build/bin/VisualDSA
The web/ folder holds the same visualizer as a static website. It needs no build step and has no dependencies: plain HTML, CSS and JavaScript, drawn on an HTML canvas.
web/index.html.python -m http.server 8000 --directory web, then open http://localhost:8000.web/ to any static host (GitHub Pages, Netlify and so on).The web version is a direct port of the C++ layers. It uses the same algorithms, the same recorded events and explanation text, the same pseudocode and complexity tables, and the same canvas layout and colours. It includes every desktop feature: all operations and traversals (including BFS), playback with speed and timeline, zoom/pan/fit, click-to-inspect, replayable history and the keyboard shortcuts. The layout adapts down to phone width.
| Web file | Ported from |
|---|---|
web/js/core.js | src/core/ (BinarySearchTree, Recorder, TreeSnapshot, TreeValidator) |
web/js/pseudocode.js | src/core/Pseudocode.cpp |
web/js/validation.js | src/utils/Validation.cpp |
web/js/canvas.js | src/visualization/TreeLayout.cpp, TreeCanvas.cpp |
web/js/animation.js | src/visualization/AnimationController.cpp |
web/js/app.js, web/index.html, web/css/style.css | src/ui/ and resources/styles/theme.qss |
The web core has its own test suite, ported from the Qt Test cases (Node.js 18 or newer):
node --test web/tests/core.test.js
| Option | Default | Meaning |
|---|---|---|
VISUALDSA_BUILD_APP | ON | Build the GUI. Set it to OFF to build only the Qt-free core plus the core tests. |
VISUALDSA_BUILD_TESTS | ON | Build the Qt Test suites and register them with CTest. |
VISUALDSA_DEPLOY_QT | ON | Windows only: run windeployqt after building the app. |
VISUALDSA_BUILD_TOOLS | OFF | Build capture_screenshots, which regenerates screenshots/ by driving the real window. |
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗