dl-doubly-linked-list-ts
Version:
A Typescript library for doubly linked-list implementation.
147 lines (115 loc) • 5.64 kB
HTML
<html class="no-js" lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>dl-doubly-linked-list-ts documentation</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="./images/favicon.ico">
<link rel="stylesheet" href="./styles/style.css">
</head>
<body>
<div class="navbar navbar-default navbar-fixed-top visible-xs">
<a href="./" class="navbar-brand">dl-doubly-linked-list-ts documentation</a>
<button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
</div>
<div class="xs-menu menu" id="mobile-menu">
<div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
</div>
<div class="container-fluid main">
<div class="row main">
<div class="hidden-xs menu">
<compodoc-menu mode="normal"></compodoc-menu>
</div>
<!-- START CONTENT -->
<div class="content getting-started">
<div class="content-data">
<h3 id="doubly-linked-list-for-typescript">Doubly Linked List for TypeScript</h3>
<p>A doubly linked-list implementation for TypeScript.</p>
<h2 id="installation">Installation</h2>
<h3 id="npm">NPM</h3>
<p><code>sh
npm install dl-doubly-linked-list</code></p>
<h3 id="build">Build</h3>
<p><code>sh
tsc</code>
Built JS files are in <code>./js</code>.</p>
<h2 id="description">Description</h2>
<h3 id="node">Node</h3>
<p>A node is a vertex in the list, implemented in the <code>DLNode</code> class and has three fields:</p>
<p>|Field|Type|Getter|Setter|Description|
|-|-|-|-|-|
|<code>data</code>|<code>T</code> (generic)|Yes|Yes|Data object contained in the node.|
|<code>next</code>|<code>DLNode | null</code>|Yes|Yes|Reference to next node, <code>null</code> if its last node.|
|<code>preious</code>|<code>DLNode | null</code>|Yes|Yes|Reference to previous node. <code>null</code> if its first node.|</p>
<h3 id="doubly-linked-list">Doubly Linked List</h3>
<p>The doubly linked-list implementation is present in the <code>DoublyLinkedList</code> class. It has three fields:</p>
<p>|Field|Type|Getter|Setter|Description|
|-|-|-|-|-|
|<code>length</code>|<code>number</code>|Yes|No|Number of nodes present in the list.|
|<code>start</code>|<code>DLNode | null</code>|Yes|Yes|Reference to start node, <code>null</code> if list is empty.|
|<code>end</code>|<code>DLNode | null</code>|Yes|Yes|Reference to last node. <code>null</code> if list is empty.|</p>
<h2 id="documentation">Documentation</h2>
<p>Please refer to <code>doc/index.html</code> for the complete documentation and API reference. The documentation for this project was generated using <a href="https://compodoc.app/">Compodoc</a>.</p>
<h2 id="demo">Demo</h2>
<p>```typescript
import { DoublyLinkedList, DLNode } from "./node_modules/dl-doubly-linked-list";</p>
<p>let list : DoublyLinkedList<any> = new DoublyLinkedList();</p>
<p>let nodes : DLNode<any>[] = [];
for(let i=0; i<10; i++) {
nodes[i] = new DLNode();
nodes[i].data = i * i;
list.insertStart(nodes[i]);
}</p>
<p>// Inserting new node at the end
let newNode : DLNode<any> = new DLNode();
newNode.data = 300;
list.insert( newNode, 6 );</p>
<p>// Deleting a node
list.delete(4);</p>
<p>// Get array of the nodes
let array = list.toArray();</p>
<p>console.log(array);
```</p>
</div><div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> result-matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
<!-- END CONTENT -->
</div>
</div>
<script>
var COMPODOC_CURRENT_PAGE_DEPTH = 0;
var COMPODOC_CURRENT_PAGE_CONTEXT = 'getting-started';
var COMPODOC_CURRENT_PAGE_URL = 'index.html';
</script>
<script src="./js/libs/custom-elements.min.js"></script>
<script src="./js/libs/lit-html.js"></script>
<!-- Required to polyfill modern browsers as code is ES5 for IE... -->
<script src="./js/libs/custom-elements-es5-adapter.js" charset="utf-8" defer></script>
<script src="./js/menu-wc.js" defer></script>
<script src="./js/libs/bootstrap-native.js"></script>
<script src="./js/libs/es6-shim.min.js"></script>
<script src="./js/libs/EventDispatcher.js"></script>
<script src="./js/libs/promise.min.js"></script>
<script src="./js/libs/zepto.min.js"></script>
<script src="./js/compodoc.js"></script>
<script src="./js/tabs.js"></script>
<script src="./js/menu.js"></script>
<script src="./js/libs/clipboard.min.js"></script>
<script src="./js/libs/prism.js"></script>
<script src="./js/sourceCode.js"></script>
<script src="./js/search/search.js"></script>
<script src="./js/search/lunr.min.js"></script>
<script src="./js/search/search-lunr.js"></script>
<script src="./js/search/search_index.js"></script>
<script src="./js/lazy-load-graphs.js"></script>
</body>
</html>