{
    "project": {
        "name": "STL",
        "logo": "...",
        "description": "Ha ha ha",
        "version": "0.0.4"
    },
    "files": {
        "Datastructures/DoublyLinkedList.ts": {
            "name": "Datastructures/DoublyLinkedList.ts",
            "modules": {},
            "classes": {
                "DoublyLinkedList": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "Datastructures/Heap.ts": {
            "name": "Datastructures/Heap.ts",
            "modules": {},
            "classes": {
                "Heap": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "Datastructures/MaxHeap.ts": {
            "name": "Datastructures/MaxHeap.ts",
            "modules": {},
            "classes": {
                "MaxHeap": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "Datastructures/MinHeap.ts": {
            "name": "Datastructures/MinHeap.ts",
            "modules": {},
            "classes": {
                "MinHeap": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "Datastructures/PriorityQueue.ts": {
            "name": "Datastructures/PriorityQueue.ts",
            "modules": {},
            "classes": {
                "PriorityQueue": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "Datastructures/Queue.ts": {
            "name": "Datastructures/Queue.ts",
            "modules": {},
            "classes": {
                "Queue": 1
            },
            "fors": {},
            "namespaces": {}
        },
        "Datastructures/Stack.ts": {
            "name": "Datastructures/Stack.ts",
            "modules": {},
            "classes": {
                "Stack": 1
            },
            "fors": {},
            "namespaces": {}
        }
    },
    "modules": {},
    "classes": {
        "DoublyLinkedList": {
            "name": "DoublyLinkedList",
            "shortname": "DoublyLinkedList",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 1,
            "description": "The DoublyLinkedList class provides the main functionality of a doubly linked list."
        },
        "Heap": {
            "name": "Heap",
            "shortname": "Heap",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "Datastructures/Heap.ts",
            "line": 1,
            "description": "The Heap class provides the main functionality of a Heap."
        },
        "MaxHeap": {
            "name": "MaxHeap",
            "shortname": "MaxHeap",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "Datastructures/MaxHeap.ts",
            "line": 4,
            "description": "The MaxHeap class provides the main functionality of a heap, keeping the maximum on the top.",
            "extends": "Heap"
        },
        "MinHeap": {
            "name": "MinHeap",
            "shortname": "MinHeap",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "Datastructures/MinHeap.ts",
            "line": 4,
            "description": "The MinHeap class provides the main functionality of a heap, keeping the minimum on the top.",
            "extends": "Heap"
        },
        "PriorityQueue": {
            "name": "PriorityQueue",
            "shortname": "PriorityQueue",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "Datastructures/PriorityQueue.ts",
            "line": 4,
            "description": "The PriorityQueue class provides the main functionality of an prioritized queue, implemented using a max heap.",
            "extends": "Heap"
        },
        "Queue": {
            "name": "Queue",
            "shortname": "Queue",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "Datastructures/Queue.ts",
            "line": 4,
            "description": "The Queue class provides the main functionality of a queue implemented using a doubly linked list.",
            "extends": "DoublyLinkedList"
        },
        "Stack": {
            "name": "Stack",
            "shortname": "Stack",
            "classitems": [],
            "plugins": [],
            "extensions": [],
            "plugin_for": [],
            "extension_for": [],
            "file": "Datastructures/Stack.ts",
            "line": 4,
            "description": "The Stack class provides the main functionality of a stack implemented using a doubly linked list.",
            "extends": "DoublyLinkedList"
        }
    },
    "classitems": [
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 8,
            "description": "Count of elements in list",
            "itemtype": "property",
            "name": "_length",
            "type": "number",
            "access": "private",
            "tagname": "",
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 17,
            "description": "Iteration pointer",
            "itemtype": "property",
            "name": "_key",
            "type": "number",
            "access": "private",
            "tagname": "",
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 26,
            "description": "Reference to head(first) element in list",
            "itemtype": "property",
            "name": "_head",
            "type": "DoublyLinkedListNode",
            "access": "private",
            "tagname": "",
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 35,
            "description": "Reference to tail(last) element in list",
            "itemtype": "property",
            "name": "_tail",
            "type": "DoublyLinkedListNode",
            "access": "private",
            "tagname": "",
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 44,
            "description": "Reference to iterated element in list",
            "itemtype": "property",
            "name": "_current",
            "type": "DoublyLinkedListNode",
            "access": "private",
            "tagname": "",
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 53,
            "description": "Insert a new value at the specified index",
            "itemtype": "method",
            "name": "add",
            "params": [
                {
                    "name": "index",
                    "description": "The index where the new value is to be inserted."
                },
                {
                    "name": "value",
                    "description": "The new value for the index."
                }
            ],
            "return": {
                "description": "void"
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 65,
            "description": "Pops a node from the end of the doubly linked list",
            "itemtype": "method",
            "name": "pop",
            "return": {
                "description": "any  The value of the popped node."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 89,
            "description": "Shifts a node from the beginning of the doubly linked list",
            "itemtype": "method",
            "name": "shift",
            "return": {
                "description": "any  The value of the shifted node."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 113,
            "description": "Pushes an element at the end of the doubly linked list",
            "itemtype": "method",
            "name": "push",
            "params": [
                {
                    "name": "value",
                    "description": "The value to push."
                }
            ],
            "return": {
                "description": "void"
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 138,
            "description": "Prepends the doubly linked list with an element",
            "itemtype": "method",
            "name": "unshift",
            "params": [
                {
                    "name": "value",
                    "description": "The value to unshift."
                }
            ],
            "return": {
                "description": "void"
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 163,
            "description": "Peeks at the node from the end of the doubly linked list",
            "itemtype": "method",
            "name": "top",
            "return": {
                "description": "any  The value of the last node."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 173,
            "description": "Peeks at the node from the beginning of the doubly linked list",
            "itemtype": "method",
            "name": "bottom",
            "return": {
                "description": "any  The value of the first node."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 183,
            "description": "Counts the number of elements in the doubly linked list",
            "itemtype": "method",
            "name": "count",
            "return": {
                "description": "number the number of elements in the doubly linked list."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 193,
            "description": "Checks whether the doubly linked list is empty",
            "itemtype": "method",
            "name": "isEmpty",
            "return": {
                "description": "boolean whether the doubly linked list is empty."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 203,
            "description": "Rewind iterator back to the start",
            "itemtype": "method",
            "name": "rewind",
            "return": {
                "description": "void"
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 214,
            "description": "Return current list entry",
            "itemtype": "method",
            "name": "current",
            "return": {
                "description": "any  The current node value."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 227,
            "description": "Return current node index",
            "itemtype": "method",
            "name": "key",
            "return": {
                "description": "any  The current node index."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 237,
            "description": "Move to next entry",
            "itemtype": "method",
            "name": "next",
            "return": {
                "description": "void"
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 248,
            "description": "Move to previous entry",
            "itemtype": "method",
            "name": "prev",
            "return": {
                "description": "void"
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 259,
            "description": "Check whether the doubly linked list contains more nodes",
            "itemtype": "method",
            "name": "valid",
            "return": {
                "description": "boolean true if the doubly linked list contains any more nodes, false otherwise."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 269,
            "description": "Export the list to array",
            "itemtype": "method",
            "name": "toArray",
            "return": {
                "description": "Array   The exported array"
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 285,
            "description": "Serializes the list to string",
            "itemtype": "method",
            "name": "toString",
            "return": {
                "description": "string   The serialized string."
            },
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/DoublyLinkedList.ts",
            "line": 296,
            "description": "DoublyLinkedList element",
            "class": "DoublyLinkedList"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 8,
            "description": "Binary tree storage array",
            "itemtype": "property",
            "name": "_tree",
            "type": "Array",
            "access": "private",
            "tagname": "",
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 17,
            "itemtype": "method",
            "name": "_parent",
            "params": [
                {
                    "name": "n",
                    "description": ""
                }
            ],
            "return": {
                "description": "number"
            },
            "access": "private",
            "tagname": "",
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 28,
            "itemtype": "method",
            "name": "_child",
            "params": [
                {
                    "name": "n",
                    "description": ""
                }
            ],
            "return": {
                "description": "number"
            },
            "access": "private",
            "tagname": "",
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 39,
            "itemtype": "method",
            "name": "shiftUp",
            "params": [
                {
                    "name": "i",
                    "description": ""
                }
            ],
            "access": "private",
            "tagname": "",
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 61,
            "itemtype": "method",
            "name": "shiftDown",
            "params": [
                {
                    "name": "i",
                    "description": ""
                }
            ],
            "access": "private",
            "tagname": "",
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 83,
            "description": "Extracts a node from top of the heap and sift up",
            "itemtype": "method",
            "name": "extract",
            "return": {
                "description": "any The value of the extracted node."
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 95,
            "description": "Inserts an element in the heap by sifting it up",
            "itemtype": "method",
            "name": "insert",
            "params": [
                {
                    "name": "value",
                    "description": "The value to insert."
                }
            ],
            "return": {
                "description": "void"
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 107,
            "description": "Peeks at the node from the top of the heap",
            "itemtype": "method",
            "name": "top",
            "return": {
                "description": "any The value of the node on the top."
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 117,
            "description": "Counts the number of elements in the heap",
            "itemtype": "method",
            "name": "count",
            "return": {
                "description": "number the number of elements in the heap."
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 127,
            "description": "Checks whether the heap is empty",
            "itemtype": "method",
            "name": "isEmpty",
            "return": {
                "description": "boolean whether the heap is empty."
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 137,
            "description": "Rewind iterator back to the start (no-op)",
            "itemtype": "method",
            "name": "rewind",
            "return": {
                "description": "void"
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 146,
            "description": "Return current node pointed by the iterator",
            "itemtype": "method",
            "name": "current",
            "return": {
                "description": "any The current node value."
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 155,
            "description": "Return current node index",
            "itemtype": "method",
            "name": "key",
            "return": {
                "description": "any The current node index."
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 164,
            "description": "Move to the next node",
            "itemtype": "method",
            "name": "next",
            "return": {
                "description": "void"
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 173,
            "description": "Check whether the heap contains more nodes",
            "itemtype": "method",
            "name": "valid",
            "return": {
                "description": "boolean true if the heap contains any more nodes, false otherwise."
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 183,
            "description": "Recover from the corrupted state and allow further actions on the heap.",
            "itemtype": "method",
            "name": "recoverFromCorruption",
            "return": {
                "description": "void"
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 192,
            "description": "Compare elements in order to place them correctly in the heap while sifting up.",
            "itemtype": "method",
            "name": "compare",
            "params": [
                {
                    "name": "first",
                    "description": "The value of the first node being compared."
                },
                {
                    "name": "second",
                    "description": "The value of the second node being compared."
                }
            ],
            "return": {
                "description": "number Result of the comparison, positive integer if value1 is greater than value2, 0 if they are equal, negative integer otherwise.\nHaving multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position."
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 205,
            "itemtype": "method",
            "name": "_displayNode",
            "params": [
                {
                    "name": "node",
                    "description": ""
                },
                {
                    "name": "prefix",
                    "description": ""
                },
                {
                    "name": "last",
                    "description": ""
                }
            ],
            "return": {
                "description": "String"
            },
            "access": "private",
            "tagname": "",
            "class": "Heap"
        },
        {
            "file": "Datastructures/Heap.ts",
            "line": 234,
            "description": "Serializes the heap to string",
            "itemtype": "method",
            "name": "toString",
            "return": {
                "description": "string   The serialized string."
            },
            "class": "Heap"
        },
        {
            "file": "Datastructures/Queue.ts",
            "line": 12,
            "description": "Adds an element to the queue",
            "itemtype": "method",
            "name": "enqueue",
            "params": [
                {
                    "name": "value",
                    "description": "The value to enqueue."
                }
            ],
            "return": {
                "description": "void"
            },
            "class": "Queue"
        },
        {
            "file": "Datastructures/Queue.ts",
            "line": 23,
            "description": "Dequeues a node from the queue",
            "itemtype": "method",
            "name": "dequeue",
            "return": {
                "description": "any  The value of the dequeued node."
            },
            "class": "Queue"
        }
    ],
    "warnings": [
        {
            "message": "Missing item type\nDoublyLinkedList element",
            "line": " Datastructures/DoublyLinkedList.ts:296"
        }
    ]
}