<!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 active" aria-current="page" href="#" >Visualization</a > </li> <li class="nav-item"> <a class="nav-link" href="./comparator.html">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 class="col-auto"> <div class="row"> <h4 class="col-auto">Choose a tree:</h4> <div class="btn-group col-auto" role="group"> <input type="radio" class="btn-check" name="treeSelection" id="avlTreeBtn" autocomplete="off" onclick="switchTree(AVLTree)" /> <label class="btn btn-outline-primary" for="avlTreeBtn">AVL</label> <input type="radio" class="btn-check" name="treeSelection" id="wavlTreeBtn" checked autocomplete="off" onclick="switchTree(WAVLTree)" /> <label class="btn btn-outline-primary" for="wavlTreeBtn" >WAVL</label > <input type="radio" class="btn-check" name="treeSelection" id="ravlTreeBtn" autocomplete="off" onclick="switchTree(RAVLTree)" /> <label class="btn btn-outline-primary" for="ravlTreeBtn" >rAVL</label > </div> </div> </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="prepareSingleRotationAfterDelete()" data-bs-toggle="tooltip" data-bs-placement="auto" title="This scenario shows a single rotation being performed after a deletion of key 2 from the prepared tree." > Single rotation </button> <button type="button" class="btn btn-outline-primary" onclick="prepareDoubleRotationAfterDelete()" data-bs-toggle="tooltip" data-bs-placement="auto" title="This scenario shows a double rotation being performed after a deletion of key 1 from the prepared tree." > Double rotation </button> <button type="button" class="btn btn-outline-primary" onclick="prepareDemotionOfBothNodesDuringDelete()" data-bs-toggle="tooltip" data-bs-placement="auto" title="This scenario shows a demotion of both parent and sibling of the current node after a deletion of key 2 from the prepared tree." > Demotion of both parent and sibling </button> </div> </div> <div class="row py-3"> <div class="col-3"></div> <div class="col alert alert-info" role="alert"> <h5 class="alert-heading">Current operation</h5> <p id="comment"></p> </div> <div class="col-3"></div> </div> <div class="row py-3"> <div class="col" id="graph" style="text-align: center"></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="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="visualization.js"></script> </body>