web/comparator.html
Matej Focko dce3e3c11c
feat(rbt): implement red-black tree
Signed-off-by: Matej Focko <mfocko@redhat.com>
2022-05-20 15:30:15 +02:00

248 lines
7.5 KiB
HTML
Executable file

<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css"
rel="stylesheet"
integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor"
crossorigin="anonymous"
/>
</head>
<body>
<nav class="navbar navbar-expand-lg bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="./">WAVL Tree Visualization</a>
<button
class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarNav"
aria-controls="navbarNav"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="./">Visualization</a>
</li>
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#"
>Comparator</a
>
</li>
</ul>
</div>
</div>
</nav>
<div class="container px-5 py-5">
<div class="row">
<div class="col-auto">
<form class="row" id="insertTree" onSubmit="return insertCallback()">
<div class="col-auto">
<input
class="form-control"
id="insertInput"
type="text"
placeholder="Number to insert"
autofocus
/>
</div>
<div class="col-auto">
<button class="btn btn-primary" type="submit">Insert</button>
</div>
</form>
</div>
<div class="col-auto">
<form class="row" id="deleteTree" onSubmit="return deleteCallback()">
<div class="col-auto">
<input
class="form-control"
id="deleteInput"
type="text"
placeholder="Number to delete"
/>
</div>
<div class="col-auto">
<input class="btn btn-primary" type="submit" value="Delete" />
</div>
</form>
</div>
</div>
<div class="row py-3">
<h4 class="col-auto">Prepared scenarios</h4>
<div
class="col-auto btn-group"
role="group"
aria-label="Prepared scenarios"
>
<button
type="button"
class="btn btn-outline-primary"
onclick="prepareDifferentRanks()"
data-bs-toggle="tooltip"
data-bs-placement="auto"
title="This scenario shows differences in ranks between AVL and WAVL after a deletion of key 1 from the prepared trees."
>
Different ranks
</button>
<button
type="button"
class="btn btn-outline-primary"
onclick="prepareDifferentTrees()"
data-bs-toggle="tooltip"
data-bs-placement="auto"
title="This scenario shows differences in ranks between AVL and WAVL after a deletion of key -31 from the prepared trees."
>
Different trees after delete
</button>
</div>
</div>
<div class="row py-3">
<div class="col">
<div class="row">
<h4 class="col-auto">Choose left tree:</h4>
<div class="btn-group col-auto" role="group">
<input
type="radio"
class="btn-check"
name="leftTreeSelection"
id="lAvlTreeBtn"
checked
autocomplete="off"
onclick="switchTree(AVLTree, 'left')"
/>
<label class="btn btn-outline-primary" for="lAvlTreeBtn">AVL</label>
<input
type="radio"
class="btn-check"
name="leftTreeSelection"
id="lWavlTreeBtn"
autocomplete="off"
onclick="switchTree(WAVLTree, 'left')"
/>
<label class="btn btn-outline-primary" for="lWavlTreeBtn"
>WAVL</label
>
<input
type="radio"
class="btn-check"
name="leftTreeSelection"
id="lRavlTreeBtn"
autocomplete="off"
onclick="switchTree(RAVLTree, 'left')"
/>
<label class="btn btn-outline-primary" for="lRavlTreeBtn"
>rAVL</label
>
<input
type="radio"
class="btn-check"
name="leftTreeSelection"
id="lRbTreeBtn"
autocomplete="off"
onclick="switchTree(RBTree, 'left')"
/>
<label class="btn btn-outline-primary" for="lRbTreeBtn"
>Red-Black</label
>
</div>
</div>
</div>
<div class="col">
<div class="row">
<h4 class="col-auto">Choose right tree:</h4>
<div class="btn-group col-auto" role="group">
<input
type="radio"
class="btn-check"
name="rightTreeSelection"
id="rAvlTreeBtn"
autocomplete="off"
onclick="switchTree(AVLTree, 'right')"
/>
<label class="btn btn-outline-primary" for="rAvlTreeBtn">AVL</label>
<input
type="radio"
class="btn-check"
name="rightTreeSelection"
id="rWavlTreeBtn"
checked
autocomplete="off"
onclick="switchTree(WAVLTree, 'right')"
/>
<label class="btn btn-outline-primary" for="rWavlTreeBtn"
>WAVL</label
>
<input
type="radio"
class="btn-check"
name="rightTreeSelection"
id="rRavlTreeBtn"
autocomplete="off"
onclick="switchTree(RAVLTree, 'right')"
/>
<label class="btn btn-outline-primary" for="rRavlTreeBtn"
>rAVL</label
>
<input
type="radio"
class="btn-check"
name="rightTreeSelection"
id="rRbTreeBtn"
autocomplete="off"
onclick="switchTree(RBTree, 'right')"
/>
<label class="btn btn-outline-primary" for="rRbTreeBtn"
>Red-Black</label
>
</div>
</div>
</div>
<div class="row py-3">
<div class="col px-3" style="text-align: center" id="left"></div>
<div class="col px-3" style="text-align: center" id="right"></div>
</div>
</div>
</div>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script src="https://unpkg.com/@hpcc-js/wasm@0.3.11/dist/index.min.js"></script>
<script src="https://unpkg.com/d3-graphviz@3.0.5/build/d3-graphviz.js"></script>
<script src="utils.js"></script>
<script src="node.js"></script>
<script src="ranked_tree.js"></script>
<script src="avl.js"></script>
<script src="wavl.js"></script>
<script src="ravl.js"></script>
<script src="rbt.js"></script>
<script src="recorder.js"></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js"
integrity="sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2"
crossorigin="anonymous"
></script>
<script src="comparator_visualization.js"></script>
</body>