From 030cd9a701dcb56606b27af126cc0dea2cd744e3 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Mon, 16 May 2022 18:23:05 +0200 Subject: [PATCH] feat: add predefined scenarios to visualization Fixes #3 Signed-off-by: Matej Focko --- index.html | 38 +++++++++++++++++++++++++++++++- visualization.js | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 2fb3a9f..154f3a3 100755 --- a/index.html +++ b/index.html @@ -92,7 +92,43 @@
-
+
+
+ +
+
+
Prepared scenarios
+ +
+ + + +
+
+
+
diff --git a/visualization.js b/visualization.js index 0f05506..acab467 100644 --- a/visualization.js +++ b/visualization.js @@ -40,6 +40,63 @@ function switchTree(TreeType) { tree.record(""); } +// #region prepared scenarios +function prepareSingleRotationAfterDelete() { + let newTree = new WAVLTree(); + + for (let key of [0, 1, 2, -1]) { + newTree.insert(key); + } + + document.getElementById("wavlTreeBtn").checked = true; + + tree = newTree; + tree.recorder = recorder; + recorder.clear(); + tree.record("Prepare tree"); + + document.getElementById("deleteInput").value = 2; +} + +function prepareDoubleRotationAfterDelete() { + let newTree = new WAVLTree(); + + for (let key of [0, -7, 1, -1]) { + newTree.insert(key); + } + + document.getElementById("wavlTreeBtn").checked = true; + + tree = newTree; + tree.recorder = recorder; + recorder.clear(); + tree.record("Prepare tree"); + + document.getElementById("deleteInput").value = 1; +} + +function prepareDemotionOfBothNodesDuringDelete() { + let newTree = new WAVLTree(); + + for (let key of [0, 1, 2, 3, -2, -3, -1]) { + newTree.insert(key); + } + + for (let key of [-2]) { + newTree.delete(key); + } + + document.getElementById("wavlTreeBtn").checked = true; + + tree = newTree; + tree.recorder = recorder; + recorder.clear(); + tree.record("Prepare tree"); + + document.getElementById("deleteInput").value = 2; +} +// #endregion prepared scenarios + function render() { recorder.render(); setTimeout(render);