data-structure-typed 1.33.7 → 1.33.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -14
- package/coverage/coverage-final.json +3 -3
- package/docs/index.html +13 -11
- package/package.json +22 -22
- package/test/integration/index.html +26 -18
package/docs/index.html
CHANGED
|
@@ -13,23 +13,25 @@
|
|
|
13
13
|
<div class="tsd-page-title">
|
|
14
14
|
<h2>data-structure-typed</h2></div>
|
|
15
15
|
<div class="tsd-panel tsd-typography"><a id="md:data-structure-typed" class="tsd-anchor"></a><h1><a href="#md:data-structure-typed">Data Structure Typed</a></h1><p>Data Structures of Javascript & TypeScript.</p>
|
|
16
|
-
<p>Do you envy
|
|
16
|
+
<p>Do you envy C++ with <a href="">std</a>, Python with <a href="">collections</a>, and Java with <a href="">java.util</a> ? Well, no need to envy anymore! JavaScript and TypeScript now have <a href="">data-structure-typed</a>.</p>
|
|
17
17
|
<p>Now you can use this library in Node.js and browser environments in CommonJS(require export.modules = ), ESModule(import export), Typescript(import export), UMD(var Queue = dataStructureTyped.Queue)</p>
|
|
18
|
+
<p>The size after packaging is 69 kB.</p>
|
|
18
19
|
<p><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License">
|
|
19
20
|
<img src="https://img.shields.io/github/languages/top/zrwusa/data-structure-typed" alt="Language">
|
|
20
21
|
<img src="https://img.shields.io/github/v/release/zrwusa/data-structure-typed" alt="GitHub release (latest by date)">
|
|
21
|
-
<img src="https://img.shields.io/badge/branches-97.54%25-brightgreen.svg?style=flat" alt="Branches">
|
|
22
22
|
<img src="https://aleen42.github.io/badges/src/npm.svg" alt="npm">
|
|
23
23
|
<img src="https://aleen42.github.io/badges/src/eslint.svg" alt="eslint"></p>
|
|
24
24
|
<a id="md:built-in-classic-algorithms" class="tsd-anchor"></a><h2><a href="#md:built-in-classic-algorithms">Built-in classic algorithms</a></h2><p>DFS(Depth-First Search), DFSIterative, BFS(Breadth-First Search), morris, Bellman-Ford Algorithm, Dijkstra's Algorithm,
|
|
25
25
|
Floyd-Warshall Algorithm, Tarjan's Algorithm.</p>
|
|
26
|
-
<a id="md:installation-and-usage" class="tsd-anchor"></a><h2><a href="#md:installation-and-usage">Installation and Usage</a></h2><a id="md:npm" class="tsd-anchor"></a><h3><a href="#md:npm">npm</a></h3><pre><code class="language-bash"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">i</span><span class="hl-1"> </span><span class="hl-2">data-structure-typed</span
|
|
26
|
+
<a id="md:installation-and-usage" class="tsd-anchor"></a><h2><a href="#md:installation-and-usage">Installation and Usage</a></h2><a id="md:npm" class="tsd-anchor"></a><h3><a href="#md:npm">npm</a></h3><pre><code class="language-bash"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">i</span><span class="hl-1"> </span><span class="hl-2">data-structure-typed</span>
|
|
27
27
|
</code><button>Copy</button></pre>
|
|
28
28
|
<a id="md:yarn" class="tsd-anchor"></a><h3><a href="#md:yarn">yarn</a></h3><pre><code class="language-bash"><span class="hl-0">yarn</span><span class="hl-1"> </span><span class="hl-2">add</span><span class="hl-1"> </span><span class="hl-2">data-structure-typed</span>
|
|
29
29
|
</code><button>Copy</button></pre>
|
|
30
|
-
<
|
|
30
|
+
<pre><code class="language-js"><span class="hl-3">import</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-4">BinaryTree</span><span class="hl-1">, </span><span class="hl-4">Graph</span><span class="hl-1">, </span><span class="hl-4">Queue</span><span class="hl-1">, </span><span class="hl-4">Stack</span><span class="hl-1">, </span><span class="hl-4">PriorityQueue</span><span class="hl-1">, </span><span class="hl-4">BST</span><span class="hl-1">, </span><span class="hl-4">Trie</span><span class="hl-1">, </span><span class="hl-4">DoublyLinkedList</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">AVLTree</span><span class="hl-1">, </span><span class="hl-4">MinHeap</span><span class="hl-1">, </span><span class="hl-4">SinglyLinkedList</span><span class="hl-1">, </span><span class="hl-4">DirectedGraph</span><span class="hl-1">, </span><span class="hl-4">TreeMultiset</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-4">DirectedVertex</span><span class="hl-1">, </span><span class="hl-4">AVLTreeNode</span><br/><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span>
|
|
31
31
|
</code><button>Copy</button></pre>
|
|
32
|
-
<
|
|
32
|
+
<a id="md:cdn" class="tsd-anchor"></a><h3><a href="#md:cdn">CDN</a></h3><pre><code class="language-html"><br/><span class="hl-5"><</span><span class="hl-6">script</span><span class="hl-7"> </span><span class="hl-8">src</span><span class="hl-7">=</span><span class="hl-9">'https://cdn.jsdelivr.net/npm/data-structure-typed/umd/bundle.min.js'</span><span class="hl-5">></</span><span class="hl-6">script</span><span class="hl-5">></span>
|
|
33
|
+
</code><button>Copy</button></pre>
|
|
34
|
+
<pre><code class="language-js"><span class="hl-10">const</span><span class="hl-1"> {</span><span class="hl-11">Heap</span><span class="hl-1">} = </span><span class="hl-4">dataStructureTyped</span><span class="hl-1">;</span><br/><span class="hl-10">const</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-11">BinaryTree</span><span class="hl-1">, </span><span class="hl-11">Graph</span><span class="hl-1">, </span><span class="hl-11">Queue</span><span class="hl-1">, </span><span class="hl-11">Stack</span><span class="hl-1">, </span><span class="hl-11">PriorityQueue</span><span class="hl-1">, </span><span class="hl-11">BST</span><span class="hl-1">, </span><span class="hl-11">Trie</span><span class="hl-1">, </span><span class="hl-11">DoublyLinkedList</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-11">AVLTree</span><span class="hl-1">, </span><span class="hl-11">MinHeap</span><span class="hl-1">, </span><span class="hl-11">SinglyLinkedList</span><span class="hl-1">, </span><span class="hl-11">DirectedGraph</span><span class="hl-1">, </span><span class="hl-11">TreeMultiset</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-11">DirectedVertex</span><span class="hl-1">, </span><span class="hl-11">AVLTreeNode</span><br/><span class="hl-1">} = </span><span class="hl-4">dataStructureTyped</span><span class="hl-1">;</span>
|
|
33
35
|
</code><button>Copy</button></pre>
|
|
34
36
|
<p><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/examples/videos/webp_output/binary-tree-array-to-binary-tree.webp" alt="">
|
|
35
37
|
<img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/examples/videos/webp_output/binary-tree-dfs-in-order.webp" alt="">
|
|
@@ -41,17 +43,17 @@ Floyd-Warshall Algorithm, Tarjan's Algorithm.</p>
|
|
|
41
43
|
<a id="md:api-docs-amp-examples" class="tsd-anchor"></a><h2><a href="#md:api-docs-amp-examples">API docs & Examples</a></h2><p><a href="https://data-structure-typed-docs.vercel.app">API Docs</a></p>
|
|
42
44
|
<p><a href="https://vivid-algorithm.vercel.app">Live Examples</a></p>
|
|
43
45
|
<p><a href="https://github.com/zrwusa/vivid-algorithm" target="_blank">Examples Repository</a></p>
|
|
44
|
-
<a id="md:code-snippet" class="tsd-anchor"></a><h2><a href="#md:code-snippet">Code Snippet</a></h2><a id="md:binary-search-tree-bst-snippet" class="tsd-anchor"></a><h3><a href="#md:binary-search-tree-bst-snippet">Binary Search Tree (BST) snippet</a></h3><a id="md:ts" class="tsd-anchor"></a><h4><a href="#md:ts">TS</a></h4><pre><code class="language-ts"><span class="hl-
|
|
46
|
+
<a id="md:code-snippet" class="tsd-anchor"></a><h2><a href="#md:code-snippet">Code Snippet</a></h2><a id="md:binary-search-tree-bst-snippet" class="tsd-anchor"></a><h3><a href="#md:binary-search-tree-bst-snippet">Binary Search Tree (BST) snippet</a></h3><a id="md:ts" class="tsd-anchor"></a><h4><a href="#md:ts">TS</a></h4><pre><code class="language-ts"><span class="hl-3">import</span><span class="hl-1"> {</span><span class="hl-4">BST</span><span class="hl-1">, </span><span class="hl-4">BSTNode</span><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">bst</span><span class="hl-1"> = </span><span class="hl-10">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">]);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-4">size</span><span class="hl-1"> === </span><span class="hl-12">16</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">has</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">node6</span><span class="hl-1"> = </span><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// BSTNode</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">2</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">() === </span><span class="hl-12">5</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">getDepth</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">3</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">getLeftMost</span><span class="hl-1">()?.</span><span class="hl-4">id</span><span class="hl-1"> === </span><span class="hl-12">1</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// null</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">BFS</span><span class="hl-1">()[</span><span class="hl-12">0</span><span class="hl-1">] === </span><span class="hl-12">11</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">objBST</span><span class="hl-1"> = </span><span class="hl-10">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1"><</span><span class="hl-14">BSTNode</span><span class="hl-1"><{</span><span class="hl-4">id</span><span class="hl-1">: </span><span class="hl-14">number</span><span class="hl-1">, </span><span class="hl-4">keyA</span><span class="hl-1">: </span><span class="hl-14">number</span><span class="hl-1">}>>();</span><br/><span class="hl-4">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">});</span><br/><span class="hl-4">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">});</span><br/><br/><span class="hl-4">objBST</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([{</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">}]);</span><br/><br/><span class="hl-4">objBST</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span>
|
|
45
47
|
</code><button>Copy</button></pre>
|
|
46
|
-
<a id="md:js" class="tsd-anchor"></a><h4><a href="#md:js">JS</a></h4><pre><code class="language-js"><span class="hl-3">const</span><span class="hl-1"> {</span><span class="hl-9">BST</span><span class="hl-1">, </span><span class="hl-9">BSTNode</span><span class="hl-1">} = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">bst</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">]);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-10">size</span><span class="hl-1"> === </span><span class="hl-12">16</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">has</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">node6</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">2</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">() === </span><span class="hl-12">5</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getDepth</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">3</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">leftMost</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getLeftMost</span><span class="hl-1">();</span><br/><span class="hl-10">leftMost</span><span class="hl-1">?.</span><span class="hl-10">id</span><span class="hl-1"> === </span><span class="hl-12">1</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-0">expect</span><span class="hl-1">(</span><span class="hl-10">leftMost</span><span class="hl-1">?.</span><span class="hl-10">id</span><span class="hl-1">).</span><span class="hl-0">toBe</span><span class="hl-1">(</span><span class="hl-12">1</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// null</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true or false</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">bfsIDs</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">BFS</span><span class="hl-1">();</span><br/><span class="hl-10">bfsIDs</span><span class="hl-1">[</span><span class="hl-12">0</span><span class="hl-1">] === </span><span class="hl-12">11</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-0">expect</span><span class="hl-1">(</span><span class="hl-10">bfsIDs</span><span class="hl-1">[</span><span class="hl-12">0</span><span class="hl-1">]).</span><span class="hl-0">toBe</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">objBST</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">});</span><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">});</span><br/><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([{</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">}]);</span><br/><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">avlTree</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">AVLTree</span><span class="hl-1">();</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">])</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">10</span><span class="hl-1">);</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span>
|
|
48
|
+
<a id="md:js" class="tsd-anchor"></a><h4><a href="#md:js">JS</a></h4><pre><code class="language-js"><span class="hl-10">const</span><span class="hl-1"> {</span><span class="hl-11">BST</span><span class="hl-1">, </span><span class="hl-11">BSTNode</span><span class="hl-1">} = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">);</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">bst</span><span class="hl-1"> = </span><span class="hl-10">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">]);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-4">size</span><span class="hl-1"> === </span><span class="hl-12">16</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">has</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">node6</span><span class="hl-1"> = </span><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">2</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">() === </span><span class="hl-12">5</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">getDepth</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">3</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">leftMost</span><span class="hl-1"> = </span><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">getLeftMost</span><span class="hl-1">();</span><br/><span class="hl-4">leftMost</span><span class="hl-1">?.</span><span class="hl-4">id</span><span class="hl-1"> === </span><span class="hl-12">1</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-0">expect</span><span class="hl-1">(</span><span class="hl-4">leftMost</span><span class="hl-1">?.</span><span class="hl-4">id</span><span class="hl-1">).</span><span class="hl-0">toBe</span><span class="hl-1">(</span><span class="hl-12">1</span><span class="hl-1">);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// null</span><br/><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true or false</span><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">bfsIDs</span><span class="hl-1"> = </span><span class="hl-4">bst</span><span class="hl-1">.</span><span class="hl-0">BFS</span><span class="hl-1">();</span><br/><span class="hl-4">bfsIDs</span><span class="hl-1">[</span><span class="hl-12">0</span><span class="hl-1">] === </span><span class="hl-12">11</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-0">expect</span><span class="hl-1">(</span><span class="hl-4">bfsIDs</span><span class="hl-1">[</span><span class="hl-12">0</span><span class="hl-1">]).</span><span class="hl-0">toBe</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">objBST</span><span class="hl-1"> = </span><span class="hl-10">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-4">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">});</span><br/><span class="hl-4">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">});</span><br/><br/><span class="hl-4">objBST</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([{</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">}, {</span><span class="hl-4">id:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">, </span><span class="hl-4">keyA:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">}]);</span><br/><br/><span class="hl-4">objBST</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">avlTree</span><span class="hl-1"> = </span><span class="hl-10">new</span><span class="hl-1"> </span><span class="hl-0">AVLTree</span><span class="hl-1">();</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">])</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">10</span><span class="hl-1">);</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span>
|
|
47
49
|
</code><button>Copy</button></pre>
|
|
48
|
-
<a id="md:avltree-snippet" class="tsd-anchor"></a><h3><a href="#md:avltree-snippet">AVLTree snippet</a></h3><a id="md:ts-1" class="tsd-anchor"></a><h4><a href="#md:ts-1">TS</a></h4><pre><code class="language-ts"><span class="hl-
|
|
50
|
+
<a id="md:avltree-snippet" class="tsd-anchor"></a><h3><a href="#md:avltree-snippet">AVLTree snippet</a></h3><a id="md:ts-1" class="tsd-anchor"></a><h4><a href="#md:ts-1">TS</a></h4><pre><code class="language-ts"><span class="hl-3">import</span><span class="hl-1"> {</span><span class="hl-4">AVLTree</span><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">avlTree</span><span class="hl-1"> = </span><span class="hl-10">new</span><span class="hl-1"> </span><span class="hl-0">AVLTree</span><span class="hl-1">();</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">])</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">10</span><span class="hl-1">);</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span>
|
|
49
51
|
</code><button>Copy</button></pre>
|
|
50
|
-
<a id="md:js-1" class="tsd-anchor"></a><h4><a href="#md:js-1">JS</a></h4><pre><code class="language-js"><span class="hl-
|
|
52
|
+
<a id="md:js-1" class="tsd-anchor"></a><h4><a href="#md:js-1">JS</a></h4><pre><code class="language-js"><span class="hl-10">const</span><span class="hl-1"> {</span><span class="hl-11">AVLTree</span><span class="hl-1">} = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">);</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">avlTree</span><span class="hl-1"> = </span><span class="hl-10">new</span><span class="hl-1"> </span><span class="hl-0">AVLTree</span><span class="hl-1">();</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">])</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">10</span><span class="hl-1">);</span><br/><span class="hl-4">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span>
|
|
51
53
|
</code><button>Copy</button></pre>
|
|
52
|
-
<a id="md:directed-graph-simple-snippet" class="tsd-anchor"></a><h3><a href="#md:directed-graph-simple-snippet">Directed Graph simple snippet</a></h3><a id="md:ts-or-js" class="tsd-anchor"></a><h4><a href="#md:ts-or-js">TS or JS</a></h4><pre><code class="language-ts"><span class="hl-
|
|
54
|
+
<a id="md:directed-graph-simple-snippet" class="tsd-anchor"></a><h3><a href="#md:directed-graph-simple-snippet">Directed Graph simple snippet</a></h3><a id="md:ts-or-js" class="tsd-anchor"></a><h4><a href="#md:ts-or-js">TS or JS</a></h4><pre><code class="language-ts"><span class="hl-3">import</span><span class="hl-1"> {</span><span class="hl-4">DirectedGraph</span><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">graph</span><span class="hl-1"> = </span><span class="hl-10">new</span><span class="hl-1"> </span><span class="hl-0">DirectedGraph</span><span class="hl-1">();</span><br/><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">hasVertex</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">hasVertex</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">hasVertex</span><span class="hl-1">(</span><span class="hl-2">'C'</span><span class="hl-1">); </span><span class="hl-13">// false</span><br/><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">hasEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">hasEdge</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">, </span><span class="hl-2">'A'</span><span class="hl-1">); </span><span class="hl-13">// false</span><br/><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">removeEdgeSrcToDest</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">hasEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">); </span><span class="hl-13">// false</span><br/><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'C'</span><span class="hl-1">);</span><br/><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">, </span><span class="hl-2">'C'</span><span class="hl-1">);</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">topologicalOrderIds</span><span class="hl-1"> = </span><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">topologicalSort</span><span class="hl-1">(); </span><span class="hl-13">// ['A', 'B', 'C']</span>
|
|
53
55
|
</code><button>Copy</button></pre>
|
|
54
|
-
<a id="md:undirected-graph-snippet" class="tsd-anchor"></a><h3><a href="#md:undirected-graph-snippet">Undirected Graph snippet</a></h3><a id="md:ts-or-js-1" class="tsd-anchor"></a><h4><a href="#md:ts-or-js-1">TS or JS</a></h4><pre><code class="language-ts"><span class="hl-
|
|
56
|
+
<a id="md:undirected-graph-snippet" class="tsd-anchor"></a><h3><a href="#md:undirected-graph-snippet">Undirected Graph snippet</a></h3><a id="md:ts-or-js-1" class="tsd-anchor"></a><h4><a href="#md:ts-or-js-1">TS or JS</a></h4><pre><code class="language-ts"><span class="hl-3">import</span><span class="hl-1"> {</span><span class="hl-4">UndirectedGraph</span><span class="hl-1">} </span><span class="hl-3">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">graph</span><span class="hl-1"> = </span><span class="hl-10">new</span><span class="hl-1"> </span><span class="hl-0">UndirectedGraph</span><span class="hl-1">();</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'C'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'D'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">removeVertex</span><span class="hl-1">(</span><span class="hl-2">'C'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">, </span><span class="hl-2">'D'</span><span class="hl-1">);</span><br/><br/><span class="hl-10">const</span><span class="hl-1"> </span><span class="hl-11">dijkstraResult</span><span class="hl-1"> = </span><span class="hl-4">graph</span><span class="hl-1">.</span><span class="hl-0">dijkstra</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">);</span><br/><span class="hl-4">Array</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><span class="hl-4">dijkstraResult</span><span class="hl-1">?.</span><span class="hl-4">seen</span><span class="hl-1"> ?? []).</span><span class="hl-0">map</span><span class="hl-1">(</span><span class="hl-4">vertex</span><span class="hl-1"> </span><span class="hl-10">=></span><span class="hl-1"> </span><span class="hl-4">vertex</span><span class="hl-1">.</span><span class="hl-4">id</span><span class="hl-1">) </span><span class="hl-13">// ['A', 'B', 'D']</span>
|
|
55
57
|
</code><button>Copy</button></pre>
|
|
56
58
|
<a id="md:data-structures" class="tsd-anchor"></a><h2><a href="#md:data-structures">Data Structures</a></h2><table>
|
|
57
59
|
<thead>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "data-structure-typed",
|
|
3
|
-
"version": "1.33.
|
|
3
|
+
"version": "1.33.8",
|
|
4
4
|
"description": "Data Structures of Javascript & TypeScript. Binary Tree, BST, Graph, Heap, Priority Queue, Linked List, Queue, Deque, Stack, AVL Tree, Tree Multiset, Trie, Directed Graph, Undirected Graph, Singly Linked List, Doubly Linked List, Max Heap, Max Priority Queue, Min Heap, Min Priority Queue.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"fix": "npm run fix:src && npm run fix:test",
|
|
25
25
|
"update:test-deps": "npm i avl-tree-typed binary-tree-typed bst-typed deque-typed directed-graph-typed doubly-linked-list-typed graph-typed heap-typed linked-list-typed max-heap-typed max-priority-queue-typed min-heap-typed min-priority-queue-typed priority-queue-typed singly-linked-list-typed stack-typed tree-multiset-typed trie-typed undirected-graph-typed queue-typed --save-dev",
|
|
26
26
|
"test": "jest",
|
|
27
|
-
"deps
|
|
27
|
+
"check:deps": "dependency-cruiser src",
|
|
28
28
|
"changelog": "auto-changelog",
|
|
29
29
|
"coverage:badge": "istanbul-badges-readme",
|
|
30
30
|
"ci": "env && npm run lint && npm run build && npm run test && git fetch --tags && npm run changelog"
|
|
@@ -49,40 +49,40 @@
|
|
|
49
49
|
"@typescript-eslint/eslint-plugin": "^5.6.0",
|
|
50
50
|
"@typescript-eslint/parser": "^5.11.0",
|
|
51
51
|
"auto-changelog": "^2.4.0",
|
|
52
|
-
"avl-tree-typed": "^1.
|
|
52
|
+
"avl-tree-typed": "^1.33.7",
|
|
53
53
|
"benchmark": "^2.1.4",
|
|
54
|
-
"binary-tree-typed": "^1.
|
|
55
|
-
"bst-typed": "^1.
|
|
54
|
+
"binary-tree-typed": "^1.33.7",
|
|
55
|
+
"bst-typed": "^1.33.7",
|
|
56
56
|
"dependency-cruiser": "^13.1.2",
|
|
57
|
-
"deque-typed": "^1.
|
|
58
|
-
"directed-graph-typed": "^1.
|
|
59
|
-
"doubly-linked-list-typed": "^1.
|
|
57
|
+
"deque-typed": "^1.33.7",
|
|
58
|
+
"directed-graph-typed": "^1.33.7",
|
|
59
|
+
"doubly-linked-list-typed": "^1.33.7",
|
|
60
60
|
"eslint": "^7.32.0",
|
|
61
61
|
"eslint-config-prettier": "^8.3.0",
|
|
62
62
|
"eslint-import-resolver-alias": "^1.1.2",
|
|
63
63
|
"eslint-import-resolver-typescript": "^2.5.0",
|
|
64
64
|
"eslint-plugin-import": "^2.25.4",
|
|
65
|
-
"graph-typed": "^1.
|
|
66
|
-
"heap-typed": "^1.
|
|
65
|
+
"graph-typed": "^1.33.7",
|
|
66
|
+
"heap-typed": "^1.33.7",
|
|
67
67
|
"istanbul-badges-readme": "^1.8.5",
|
|
68
68
|
"jest": "^29.6.2",
|
|
69
|
-
"linked-list-typed": "^1.
|
|
70
|
-
"max-heap-typed": "^1.
|
|
71
|
-
"max-priority-queue-typed": "^1.
|
|
72
|
-
"min-heap-typed": "^1.
|
|
73
|
-
"min-priority-queue-typed": "^1.
|
|
69
|
+
"linked-list-typed": "^1.33.7",
|
|
70
|
+
"max-heap-typed": "^1.33.7",
|
|
71
|
+
"max-priority-queue-typed": "^1.33.7",
|
|
72
|
+
"min-heap-typed": "^1.33.7",
|
|
73
|
+
"min-priority-queue-typed": "^1.33.7",
|
|
74
74
|
"prettier": "^3.0.3",
|
|
75
|
-
"priority-queue-typed": "^1.
|
|
76
|
-
"queue-typed": "^1.
|
|
77
|
-
"singly-linked-list-typed": "^1.
|
|
78
|
-
"stack-typed": "^1.
|
|
79
|
-
"tree-multiset-typed": "^1.
|
|
80
|
-
"trie-typed": "^1.
|
|
75
|
+
"priority-queue-typed": "^1.33.7",
|
|
76
|
+
"queue-typed": "^1.33.7",
|
|
77
|
+
"singly-linked-list-typed": "^1.33.7",
|
|
78
|
+
"stack-typed": "^1.33.7",
|
|
79
|
+
"tree-multiset-typed": "^1.33.7",
|
|
80
|
+
"trie-typed": "^1.33.7",
|
|
81
81
|
"ts-jest": "^29.1.1",
|
|
82
82
|
"ts-loader": "^9.4.4",
|
|
83
83
|
"typedoc": "^0.24.8",
|
|
84
84
|
"typescript": "^4.9.5",
|
|
85
|
-
"undirected-graph-typed": "^1.
|
|
85
|
+
"undirected-graph-typed": "^1.33.7",
|
|
86
86
|
"webpack": "^5.88.2",
|
|
87
87
|
"webpack-cli": "^5.1.4"
|
|
88
88
|
},
|
|
@@ -13,30 +13,38 @@
|
|
|
13
13
|
</div>
|
|
14
14
|
<script defer>
|
|
15
15
|
const $modules = document.querySelector('.modules');
|
|
16
|
-
const $avlTree = document.createElement('li');
|
|
17
|
-
const $avlTreeSpan = document.createElement('span');
|
|
18
|
-
$avlTreeSpan.innerText = 'AVLTree';
|
|
19
|
-
$avlTree.append($avlTreeSpan);
|
|
20
|
-
const {AVLTree, Queue} = dataStructureTyped;
|
|
21
|
-
const avlTree = new AVLTree();
|
|
22
16
|
|
|
23
|
-
avlTree.add(1, 1);
|
|
24
|
-
console.log(avlTree.BFS());
|
|
25
|
-
$modules.append($avlTree);
|
|
26
17
|
|
|
18
|
+
try {
|
|
19
|
+
const {AVLTree, Queue} = window.dataStructureTyped;
|
|
20
|
+
const avlTree = new AVLTree();
|
|
21
|
+
const $avlTree = document.createElement('li');
|
|
22
|
+
const $avlTreeSpan = document.createElement('span');
|
|
23
|
+
$avlTreeSpan.innerText = 'AVLTree';
|
|
24
|
+
$avlTree.append($avlTreeSpan);
|
|
25
|
+
avlTree.add(1, 1);
|
|
26
|
+
console.log(avlTree.BFS());
|
|
27
|
+
$modules.append($avlTree);
|
|
27
28
|
|
|
28
|
-
const queue = new Queue();
|
|
29
|
-
for (let i = 0; i < 1000000; i++) {
|
|
30
|
-
queue.enqueue(i);
|
|
31
|
-
}
|
|
32
|
-
let last = 0;
|
|
33
|
-
const startTime = performance.now();
|
|
34
29
|
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
const queue = new Queue();
|
|
31
|
+
for (let i = 0; i < 1000000; i++) {
|
|
32
|
+
queue.enqueue(i);
|
|
33
|
+
}
|
|
34
|
+
let last = 0;
|
|
35
|
+
const startTime = performance.now();
|
|
36
|
+
|
|
37
|
+
for (let i = 0; i < 1000000; i++) {
|
|
38
|
+
last = queue.dequeue();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
console.log(performance.now() - startTime);
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
console.error(e);
|
|
37
46
|
}
|
|
38
47
|
|
|
39
|
-
console.log(performance.now() - startTime);
|
|
40
48
|
</script>
|
|
41
49
|
|
|
42
50
|
</body>
|