UNPKG

jstructures

Version:

The project is JavaScript Data Structures incudes Vector, List, Tree, Graph, Heap...etc

1,913 lines (1,104 loc) 30 kB
# JStructure JavaScript 版本的数据结构,提供常用的数据结构封装,基于清华大学邓俊辉老师的数据结构课程 [![Build status](https://travis-ci.com/open-node/jstructures.svg?branch=master)](https://travis-ci.org/open-node/jstructures) [![codecov](https://codecov.io/gh/open-node/jstructures/branch/master/graph/badge.svg)](https://codecov.io/gh/open-node/jstructures) # 进度 * [x] List (linked-list) * [x] Vector * [x] Stack * [x] Queue * [x] SegmentTree * [x] UnionFind * [x] BinTree * [x] BST (BinanySearchTree) * [ ] BTree * [x] Trie * [ ] Graph * [x] Heap * [ ] LeftHeap * [ ] Priority Queue <!-- Generated by documentation.js. Update this documentation by updating the source code. --> ### Table of Contents <!-- Generated by documentation.js. Update this documentation by updating the source code. --> ### Table of Contents - [AVL][1] - [insert][2] - [Parameters][3] - [remove][4] - [Parameters][5] - [balanced][6] - [Parameters][7] - [AVLBalanced][8] - [Parameters][9] - [balFac][10] - [Parameters][11] - [height][12] - [Parameters][13] - [BST][14] - [search][15] - [Parameters][16] - [insert][17] - [Parameters][18] - [remove][19] - [Parameters][20] - [removeAt][21] - [Parameters][22] - [searchIn][23] - [Parameters][24] - [BinNode][25] - [Parameters][26] - [data][27] - [parent][28] - [lc][29] - [rc][30] - [height][31] - [size][32] - [isRoot][33] - [isLChild][34] - [isRChild][35] - [hasParent][36] - [hasLChild][37] - [hasRChild][38] - [hasChild][39] - [hasBothChild][40] - [isLeaf][41] - [sibling][42] - [uncle][43] - [fromParentTo][44] - [pred][45] - [succ][46] - [insertAsLC][47] - [Parameters][48] - [insertAsRC][49] - [Parameters][50] - [travLevel][51] - [Parameters][52] - [travPre][53] - [Parameters][54] - [travIn][55] - [Parameters][56] - [travPost][57] - [Parameters][58] - [swap][59] - [Parameters][60] - [BinTree][61] - [size][62] - [size][63] - [Parameters][64] - [empty][65] - [root][66] - [root][67] - [Parameters][68] - [updateHeightAbove][69] - [Parameters][70] - [insertAsRoot][71] - [Parameters][72] - [insertAsLC][73] - [Parameters][74] - [insertAsRC][75] - [Parameters][76] - [attachAsLC][77] - [Parameters][78] - [attachAsRC][79] - [Parameters][80] - [remove][81] - [Parameters][82] - [secede][83] - [Parameters][84] - [travLevel][85] - [Parameters][86] - [travPre][87] - [Parameters][88] - [travIn][89] - [Parameters][90] - [travPost][91] - [Parameters][92] - [Heap][93] - [Parameters][94] - [size][95] - [percolateUp][96] - [Parameters][97] - [percolateDown][98] - [Parameters][99] - [insert][100] - [Parameters][101] - [getMax][102] - [delMax][103] - [Parameters][104] - [properParent][105] - [Parameters][106] - [ListNode][107] - [Parameters][108] - [insertAsSucc][109] - [Parameters][110] - [insertAsPred][111] - [Parameters][112] - [List][113] - [Parameters][114] - [size][115] - [first][116] - [last][117] - [insertAsFirst][118] - [Parameters][119] - [insertAsLast][120] - [Parameters][121] - [insertA][122] - [Parameters][123] - [insertB][124] - [Parameters][125] - [remove][126] - [Parameters][127] - [disordered][128] - [findElem][129] - [Parameters][130] - [search][131] - [Parameters][132] - [deduplicate][133] - [uniquify][134] - [traverse][135] - [Parameters][136] - [valid][137] - [Parameters][138] - [selectMax][139] - [Parameters][140] - [insertionSort][141] - [Parameters][142] - [selectionSort][143] - [Parameters][144] - [merge][145] - [Parameters][146] - [mergeSort][147] - [Parameters][148] - [Queue][149] - [enqueue][150] - [Parameters][151] - [dequeue][152] - [front][153] - [empty][154] - [size][155] - [SegmentTree][156] - [Parameters][157] - [size][158] - [leftChild][159] - [Parameters][160] - [rightChild][161] - [Parameters][162] - [build][163] - [Parameters][164] - [query][165] - [Parameters][166] - [update][167] - [Parameters][168] - [Stack][169] - [push][170] - [Parameters][171] - [pop][172] - [top][173] - [empty][174] - [size][175] - [Trie][176] - [size][177] - [root][178] - [insert][179] - [Parameters][180] - [find][181] - [Parameters][182] - [UnionFind][183] - [Parameters][184] - [find][185] - [Parameters][186] - [union][187] - [Parameters][188] - [isConnected][189] - [Parameters][190] - [toString][191] - [Vector][192] - [Parameters][193] - [size][194] - [insert][195] - [Parameters][196] - [removeRange][197] - [Parameters][198] - [remove][199] - [Parameters][200] - [disordered][201] - [findElem][202] - [Parameters][203] - [search][204] - [Parameters][205] - [deduplicate][206] - [uniquify][207] - [traverse][208] - [Parameters][209] - [binSearch][210] - [Parameters][211] - [bubbleSort][212] - [Parameters][213] - [merge][214] - [Parameters][215] - [mergeSort][216] - [Parameters][217] ## AVL **Extends BST** AVL 类(AVL 树, 继承自 BST) Returns **[AVL][218]** Instance ### insert 插入元素 #### Parameters - `e` **Anyone** 要插入的数据元素 Returns **[BinNode][219]** ### remove 删除元素, 注意是删除节点,非节点为根的子树 #### Parameters - `e` **Anyone** 要插入的数据元素 Returns **[Boolean][220]** 是否成功删除 ### balanced 判断某个节点是否理想平衡即:左右高度相等 #### Parameters - `x` - `要判断的节点` **[BinNode][219]** Returns **[Boolean][220]** ### AVLBalanced 判断某个节点是否AVL平衡即:-2&lt;左高度-右高度&lt;2 #### Parameters - `x` - `要判断的节点` **[BinNode][219]** Returns **[Boolean][220]** ### balFac 获取节点的平衡因子 x.lc.height - x.rc.height; #### Parameters - `x` - `要判断的节点` **[BinNode][219]** Returns **[number][221]** 左子树高度和右子树高度的差值 ### height 获取节点的高度 #### Parameters - `x` - `要判断的节点` **[BinNode][219]** Returns **[number][221]** 节点高度,空树高 -1, 叶子高 0 ## BST **Extends BinTree** BST 类(二叉搜索树类, 继承自 BinTree) Returns **[BST][222]** Instance ### search 查找元素 e 所在的节点 #### Parameters - `e` **Anyone** 要搜索的元素 Returns **\[[BinNode][219]]** 返回两项,第一项是搜索命中的节点,第二项是命中节点的父节点 ### insert 插入元素 #### Parameters - `e` **Anyone** 要插入的数据元素 Returns **[BinNode][219]** ### remove 删除元素, 注意是删除节点,非节点为根的子树 #### Parameters - `e` **Anyone** 要插入的数据元素 Returns **[Boolean][220]** 是否成功删除 ### removeAt 删除某个节点 #### Parameters - `x` **[BinNode][219]** 要删除的节点 Returns **[BinNode][219]** 返回接替者 ### searchIn 以 v 为根节点查找元素 e 所在的节点 #### Parameters - `v` **[BinNode][219]** 要搜索的树的根节点 - `e` **Anyone** 要搜索的元素 - `parent` - `p` **[BinNode][219]** 当前搜索节点的父节点 Returns **\[[BinNode][219]]** 返回两项,第一项是搜索命中的节点,第二项是命中节点的父节点 ## BinNode BinNode 类(二叉树节点类) ### Parameters - `e` **Anyone** (optional, default `null`) - `parent` **[BinNode][219]** 父节点 (optional, default `null`) - `lc` **[BinNode][219]** 左子节点 (optional, default `null`) - `rc` **[BinNode][219]** 右子节点 (optional, default `null`) Returns **[BinNode][219]** Instance ### data 节点存储数据 ### parent 父节点 ### lc 左子节点 ### rc 右子节点 ### height 以该节点为根的树高度 ### size 节点为根的子树规模 Returns **[Boolean][220]** ### isRoot 判断是否是根节点 Returns **[Boolean][220]** ### isLChild 判断是否是左子节点 Returns **[Boolean][220]** ### isRChild 判断是否是右子节点 Returns **[Boolean][220]** ### hasParent 判断是否有父节点 Returns **[Boolean][220]** ### hasLChild 判断是有左子节点 Returns **[Boolean][220]** ### hasRChild 判断是有左子节点 Returns **[Boolean][220]** ### hasChild 判断是有子节点 Returns **[Boolean][220]** ### hasBothChild 判断是有完整子节点 (即左右子节点都有) Returns **[Boolean][220]** ### isLeaf 判断是否是叶子节点(没有子节点) Returns **[Boolean][220]** ### sibling 兄弟节点 Returns **[BinNode][219]** ### uncle 叔叔节点(即父节点的兄弟节点) Returns **[BinNode][219]** ### fromParentTo 获取来自父节点的引用 Returns **[Array][223]** [object, key] ### pred 获取中序遍历下的直接前驱 Returns **[BinNode][219]** 返回前驱节点,不存在则返回 null ### succ 获取中序遍历下的直接后继 Returns **[BinNode][219]** 返回后继节点,不存在则返回 null ### insertAsLC 将元素作为左子节点插入 #### Parameters - `e` **Anyone** Returns **[BinNode][219]** 返回插入额节点 ### insertAsRC 将元素作为右子节点插入 #### Parameters - `e` **Anyone** Returns **[BinNode][219]** 返回插入额节点 ### travLevel 当前节点作为根节点的子树层次遍历 BFS #### Parameters - `p` - `visit` - `访问函数` **[function][224]** Returns **void** ### travPre 当前节点作为根节点的子树前序遍历 DFS #### Parameters - `p` **[BinNode][219]** 遍历的节点 - `visit` - `访问函数` **[function][224]** Returns **void** ### travIn 当前节点作为根节点的子树中序遍历 DFS #### Parameters - `p` **[BinNode][219]** 遍历的节点 - `visit` - `访问函数` **[function][224]** Returns **void** ### travPost 当前节点作为根节点的子树后序遍历 DFS #### Parameters - `p` **[BinNode][219]** 遍历的节点 - `visit` - `访问函数` **[function][224]** Returns **void** ### swap 交换量几个节点的数据 #### Parameters - `node1` **[BinNode][219]** 要交换的节点1 - `node2` **[BinNode][219]** 要交换的节点2 Returns **void** ## BinTree BinTree 类(二叉树类) Returns **[BinTree][225]** Instance ### size 树的规模 Returns **[number][221]** ### size 更新树的规模 #### Parameters - `num` Returns **[number][221]** ### empty 树是否为空 Returns **[Boolean][220]** ### root 树根节点 Returns **[BinNode][219]** ### root 重置根节点 #### Parameters - `_root` Returns **[BinNode][219]** ### updateHeightAbove 更新节点以及祖先节点的高度 #### Parameters - `p` **[BinNode][219]** 要更新的节点 Returns **[number][221]** 返回更新后的高度 ### insertAsRoot 作为树根节点插入 #### Parameters - `e` **Anyone** 要插入的数据元素 Returns **[BinNode][219]** ### insertAsLC 作为节点的左孩子插入 #### Parameters - `p` **[BinNode][219]** 要插入的位置 - `e` **Anyone** 要插入的数据元素 Returns **[BinNode][219]** ### insertAsRC 作为节点的右孩子插入 #### Parameters - `p` **[BinNode][219]** 要插入的位置 - `e` **Anyone** 要插入的数据元素 Returns **[BinNode][219]** ### attachAsLC 作为节点的左孩子接入子树 #### Parameters - `p` **[BinNode][219]** 要插入的位置 - `s` **[BinTree][225]** 要接入的数 Returns **[BinNode][219]** ### attachAsRC 作为节点的右孩子接入子树 #### Parameters - `p` **[BinNode][219]** 要插入的位置 - `s` **[BinTree][225]** 要接入的数 Returns **[BinNode][219]** ### remove 删除某个节点作为根的子树 #### Parameters - `p` **[BinNode][219]** 要删除的根节点 Returns **[number][221]** 返回删除节点的总个数 ### secede 分离某个节点作为根的子树 #### Parameters - `p` **[BinNode][219]** 要删除的根节点 Returns **[BinTree][225]** 返回分离出来的子树 ### travLevel 树的层次遍历 #### Parameters - `visit` - `访问函数` **[function][224]** Returns **void** ### travPre 树的前序遍历 #### Parameters - `visit` - `访问函数` **[function][224]** Returns **void** ### travIn 树的中序遍历 #### Parameters - `visit` - `访问函数` **[function][224]** Returns **void** ### travPost 树的后序遍历 #### Parameters - `visit` - `访问函数` **[function][224]** Returns **void** ## Heap Heap 堆 ### Parameters - `elems` (optional, default `[]`) - `length` (optional, default `0`) Returns **[Heap][226]** Instance ### size 获取堆的大小 Returns **[number][221]** ### percolateUp 元素上滤操作 #### Parameters - `i` **[Number][221]** 上滤的元素索引 Returns **[Number][221]** 上滤的终止位置 ### percolateDown 元素下滤操作 #### Parameters - `i` **[Number][221]** 下滤的元素索引 Returns **[Number][221]** 下滤的终止位置 ### insert e 元素插入 #### Parameters - `e` **Anyone** Returns **void** ### getMax 返回堆的最大元素 Returns **Anyone** ### delMax 删除堆的最大元素 #### Parameters - `e` **Anyone** Returns **void** ## properParent 得到父子三者(最多三个) 中的最大值 ### Parameters - `n` - `i` ## ListNode ListNode 类 ### Parameters - `e` **Anyone?** 初始数组 Returns **[ListNode][227]** Instance ### insertAsSucc 将 元素 e 作为当前节点的直接后继插入 #### Parameters - `e` **Anyone** Returns **[ListNode][227]** ### insertAsPred 将 元素 e 作为当前节点的直接前驱插入 #### Parameters - `e` **Anyone** Returns **[ListNode][227]** ## List Linked-list 类 ### Parameters - `_elem` **[Array][223]** 初始数组 Returns **[List][228]** Instance ### size 获取列表长度/大小 Returns **[number][221]** ### first 获取列表首节点 Returns **[ListNode][227]** ### last 获取列表末节点 Returns **[ListNode][227]** ### insertAsFirst 将 e 作为首节点插入列表 #### Parameters - `e` **Anyone** Returns **[ListNode][227]** ### insertAsLast 将 e 作为末节点插入列表 #### Parameters - `e` **Anyone** Returns **[ListNode][227]** ### insertA e 作为节点 p 的直接后继插入 #### Parameters - `p` - `e` **Anyone** Returns **[number][221]** ### insertB e 作为节点 p 的直接前驱插入 #### Parameters - `p` - `e` **Anyone** Returns **[number][221]** ### remove 删除指定节点 p #### Parameters - `p` **[number][221]** 要删除元素 Returns **Anyone** e 删除的元素 ### disordered 返回列表中相邻元素逆序对总数, 当返回为0则代表列表有序 Returns **[Number][221]** ### findElem 从节点p往前查找目标元素 e 所在最后节点, 最多查询 n 个 #### Parameters - `e` **Anyone** 要搜索的元素 - `n` **[number][221]** 最大搜索次数 (optional, default `this[size]`) - `p` **[ListNode][227]** 从p节点往前查找, 默认为 tailer,查找全部 (optional, default `this[tailer]`) Returns **[ListNode][227]** 等于 e 的元素最后的节点 ### search 从节点p的n的真前驱中查找不大于 e 的最后者 #### Parameters - `e` **Anyone** 要搜索的元素 - `n` **[number][221]** 最大搜索次数 (optional, default `this[size]`) - `p` **[ListNode][227]** 从p节点往前查找, 默认为 tailer,查找全部 (optional, default `this[tailer]`) Returns **[ListNode][227]** 等于 e 的元素最后的节点 ### deduplicate 剔除重复元素,保证每个元素都是唯一的 Returns **[number][221]** 被删除的元素个数 ### uniquify 有序列表剔除重复元素,保证每个元素都是唯一的 Returns **[number][221]** 被删除的元素个数 ### traverse 向量的遍历 #### Parameters - `visit` **[function][224]** 访问函数 Returns **any** void ### valid 判断节点是否合法,存在,且不是首尾哨兵 #### Parameters - `p` **[ListNode][227]** Returns **[boolean][220]** ### selectMax 从起始位置 p 的n个元素中找到最大者, 相同大小后者优先 #### Parameters - `p` **[ListNode][227]** 排序起始节点 (optional, default `this[header].succ`) - `n` **[number][221]** (optional, default `this[size]`) Returns **[ListNode][227]** ### insertionSort 列表的插入排序, 对起始位置为 p 的 n 的元素进行排序 #### Parameters - `p` **[ListNode][227]** 排序起始节点 (optional, default `this[header].succ`) - `n` **[number][221]** (optional, default `this[size]`) Returns **[ListNode][227]** 排序后的起始节点 ### selectionSort 列表的选择排序, 对起始位置为 p 的 n 的元素进行排序 #### Parameters - `p` **[ListNode][227]** 排序起始节点 (optional, default `this[header].succ`) - `n` **[number][221]** (optional, default `this[size]`) Returns **[ListNode][227]** 排序后的起始节点 ### merge 列表的归并排序之归并, 对起始位置为 p 的 n 的元素进行排序 #### Parameters - `p` **[ListNode][227]** 合并起始节点 - `n` **[number][221]** - `he` **[List][228]** 要合并的另外一个列表 - `q` **[ListNode][227]** 合并的另外一个列表起始节点 - `m` **[number][221]** 要合并的另外一个列表的节点数 Returns **[ListNode][227]** 归并后的起始节点 ### mergeSort 列表的归并排序, 对起始位置为 p 的 n 的元素进行排序 #### Parameters - `p` **[ListNode][227]** 排序起始节点 (optional, default `this[header].succ`) - `n` **[number][221]** (optional, default `this[size]`) Returns **[ListNode][227]** 排序后的起始节点 ## Queue Queue 类 Returns **[Queue][229]** Instance ### enqueue e 加入队列尾部(排队) #### Parameters - `e` **Anyone** Returns **void** ### dequeue 将队首出队 Returns **Anyone** e 之前压入的元素 ### front 指向队首元素 Returns **Anyone** e 之前压入的元素 ### empty 判断队列是否为空 Returns **[Boolean][220]** ### size 当前队列列长度(规模) Returns **[number][221]** ## SegmentTree Segment-tree 线段树(区间树)类 ### Parameters - `data` - `mergeFn` - `_elem` **[Array][223]** 初始数组 Returns **[List][228]** Instance ### size 获取数据长度/大小 Returns **[number][221]** ### leftChild 左节点的索引 #### Parameters - `index` Returns **[number][221]** ### rightChild 右节点的索引 #### Parameters - `index` Returns **[number][221]** ### build 构建线段树 #### Parameters - `index` - `left` - `right` Returns **void** ### query 查询线段树的某一区间 #### Parameters - `qL` **[Number][221]** 查询的区间开始值 - `qR` **[Number][221]** 查询的区间结束值 Returns **Anyone** ### update 更新某个值 #### Parameters - `index` **[Number][221]** 原数组的索引 - `val` **Anyone** 修改后的值 Returns **void** ## Stack Stack 类 Returns **[Stack][230]** Instance ### push e 作为压入栈顶 #### Parameters - `e` **Anyone** Returns **void** ### pop 将栈顶出栈 Returns **Anyone** e 之前压入的元素 ### top 指向栈顶元素,并不出栈 Returns **Anyone** e 之前压入的元素 ### empty 判断栈是否为空 Returns **[Boolean][220]** ### size 当前栈高度(规模) Returns **[Number][221]** ## Trie Returns **[Trie][231]** Instance ### size 获取字典树的大小, 包含单词的数量 Returns **[number][221]** ### root 获取字典树的跟节点 Returns **[number][221]** ### insert 插入 word #### Parameters - `word` **[String][232]** 要插入的单词 Returns **void** ### find 查找 word #### Parameters - `word` **[String][232]** 要查找的单词 Returns **[Boolean][220]** ## UnionFind UnionFind 并查集类 ### Parameters - `size` **[Number][221]** 集合规模 Returns **[UnionFind][233]** Instance ### find 查找p所属的集合编号 #### Parameters - `p` **[Number][221]** Returns **[Number][221]** ### union 链接两个元素 #### Parameters - `p` **[Number][221]** - `q` **[Number][221]** Returns **void** ### isConnected 判断两个元素是否相连 #### Parameters - `p` **[Number][221]** - `q` **[Number][221]** Returns **[Boolean][220]** ### toString 用来返回内部集合的情况 Returns **[String][232]** ## Vector ### Parameters - `_elem` **[Array][223]** 初始数组 (optional, default `[]`) Returns **[Vector][234]** Instance ### size 获取向量大小 Returns **[number][221]** ### insert e 作为秩为 r 的元素插入,原后继元素依次后移 #### Parameters - `r` **[number][221]** 插入新元素的秩 0 &lt;= r &lt;= size - `e` **Anyone** Returns **[number][221]** ### removeRange 删除指定区间的元素, 原后继元素依次前移\[lo, hi) #### Parameters - `lo` **[number][221]** 要删除元素起始的秩 0 &lt;= r &lt;= size - `hi` **[number][221]** 要删除元素结束的秩 0 &lt;= r &lt;= size Returns **[number][221]** 删除的元素数量 ### remove 删除指定秩的元素, 原后继元素依次前移 #### Parameters - `r` **[number][221]** 要删除元素的秩 0 &lt;= r &lt;= size Returns **Anyone** e 删除的元素 ### disordered 返回向量中相邻元素逆序对总数, 当返回为0则代表向量有序 Returns **[Number][221]** ### findElem 在向量的区间 \[lo, hi)查找元素等于 e 的最大秩 #### Parameters - `e` **Anyone** 要搜索的元素 - `lo` **[number][221]** 要查找的起始秩 (optional, default `0`) - `hi` **[number][221]** 要查找的结束秩 (optional, default `_elem.length`) Returns **[number][221]** 等于 e 的元素最大的秩 ### search 在有序向量的区间\[lo, hi)查找元素e 所在的秩, 0 &lt;= lo &lt;= hi &lt;= size #### Parameters - `e` **Anyone** 要搜索的元素 - `lo` **[number][221]** 要查找的起始秩 - `hi` **[number][221]** 要查找的结束秩 Returns **[number][221]** 不大于 e 的元素最大的秩 ### deduplicate 剔除重复元素,保证每个元素都是唯一的 Returns **[number][221]** 被删除的元素个数 ### uniquify 有序向量剔除重复元素,保证每个元素都是唯一的 Returns **[number][221]** 被删除的元素个数 ### traverse 向量的遍历 #### Parameters - `visit` **[function][224]** 访问函数 Returns **any** void ### binSearch 在有序向量的区间\[lo, hi)查找元素不大于 e 的元素的最大秩, 0 &lt;= lo &lt;= hi &lt;= size #### Parameters - `_elem` **[Vector][234]** 要搜索的有序向量或有序数组 - `e` **Anyone** 要搜索的元素 - `lo` **[number][221]** 要查找的起始秩 (optional, default `0`) - `hi` **[number][221]** 要查找的结束秩 (optional, default `_elem.length`) Returns **[number][221]** 不大于 e 的元素最大的秩 ### bubbleSort 排序算法 起泡排序, 具有稳定性 #### Parameters - `_elem` **[Vector][234]** 要排序的向量或数据 - `lo` **[number][221]** 要查找的起始秩 (optional, default `0`) - `hi` **[number][221]** 要查找的结束秩 (optional, default `_elem.length`) Returns **void** ### merge 排序算法 归并排序之合并 #### Parameters - `_elem` **[Vector][234]** 要排序的向量或数据 - `lo` **[number][221]** 要查找的起始秩 - `mi` - `hi` **[number][221]** 要查找的结束秩 Returns **void** ### mergeSort 排序算法 归并排序 #### Parameters - `_elem` **[Vector][234]** 要排序的向量或数据 - `lo` **[number][221]** 要查找的起始秩 (optional, default `0`) - `hi` **[number][221]** 要查找的结束秩 (optional, default `_elem.length`) Returns **void** [1]: #avl [2]: #insert [3]: #parameters [4]: #remove [5]: #parameters-1 [6]: #balanced [7]: #parameters-2 [8]: #avlbalanced [9]: #parameters-3 [10]: #balfac [11]: #parameters-4 [12]: #height [13]: #parameters-5 [14]: #bst [15]: #search [16]: #parameters-6 [17]: #insert-1 [18]: #parameters-7 [19]: #remove-1 [20]: #parameters-8 [21]: #removeat [22]: #parameters-9 [23]: #searchin [24]: #parameters-10 [25]: #binnode [26]: #parameters-11 [27]: #data [28]: #parent [29]: #lc [30]: #rc [31]: #height-1 [32]: #size [33]: #isroot [34]: #islchild [35]: #isrchild [36]: #hasparent [37]: #haslchild [38]: #hasrchild [39]: #haschild [40]: #hasbothchild [41]: #isleaf [42]: #sibling [43]: #uncle [44]: #fromparentto [45]: #pred [46]: #succ [47]: #insertaslc [48]: #parameters-12 [49]: #insertasrc [50]: #parameters-13 [51]: #travlevel [52]: #parameters-14 [53]: #travpre [54]: #parameters-15 [55]: #travin [56]: #parameters-16 [57]: #travpost [58]: #parameters-17 [59]: #swap [60]: #parameters-18 [61]: #bintree [62]: #size-1 [63]: #size-2 [64]: #parameters-19 [65]: #empty [66]: #root [67]: #root-1 [68]: #parameters-20 [69]: #updateheightabove [70]: #parameters-21 [71]: #insertasroot [72]: #parameters-22 [73]: #insertaslc-1 [74]: #parameters-23 [75]: #insertasrc-1 [76]: #parameters-24 [77]: #attachaslc [78]: #parameters-25 [79]: #attachasrc [80]: #parameters-26 [81]: #remove-2 [82]: #parameters-27 [83]: #secede [84]: #parameters-28 [85]: #travlevel-1 [86]: #parameters-29 [87]: #travpre-1 [88]: #parameters-30 [89]: #travin-1 [90]: #parameters-31 [91]: #travpost-1 [92]: #parameters-32 [93]: #heap [94]: #parameters-33 [95]: #size-3 [96]: #percolateup [97]: #parameters-34 [98]: #percolatedown [99]: #parameters-35 [100]: #insert-2 [101]: #parameters-36 [102]: #getmax [103]: #delmax [104]: #parameters-37 [105]: #properparent [106]: #parameters-38 [107]: #listnode [108]: #parameters-39 [109]: #insertassucc [110]: #parameters-40 [111]: #insertaspred [112]: #parameters-41 [113]: #list [114]: #parameters-42 [115]: #size-4 [116]: #first [117]: #last [118]: #insertasfirst [119]: #parameters-43 [120]: #insertaslast [121]: #parameters-44 [122]: #inserta [123]: #parameters-45 [124]: #insertb [125]: #parameters-46 [126]: #remove-3 [127]: #parameters-47 [128]: #disordered [129]: #findelem [130]: #parameters-48 [131]: #search-1 [132]: #parameters-49 [133]: #deduplicate [134]: #uniquify [135]: #traverse [136]: #parameters-50 [137]: #valid [138]: #parameters-51 [139]: #selectmax [140]: #parameters-52 [141]: #insertionsort [142]: #parameters-53 [143]: #selectionsort [144]: #parameters-54 [145]: #merge [146]: #parameters-55 [147]: #mergesort [148]: #parameters-56 [149]: #queue [150]: #enqueue [151]: #parameters-57 [152]: #dequeue [153]: #front [154]: #empty-1 [155]: #size-5 [156]: #segmenttree [157]: #parameters-58 [158]: #size-6 [159]: #leftchild [160]: #parameters-59 [161]: #rightchild [162]: #parameters-60 [163]: #build [164]: #parameters-61 [165]: #query [166]: #parameters-62 [167]: #update [168]: #parameters-63 [169]: #stack [170]: #push [171]: #parameters-64 [172]: #pop [173]: #top [174]: #empty-2 [175]: #size-7 [176]: #trie [177]: #size-8 [178]: #root-2 [179]: #insert-3 [180]: #parameters-65 [181]: #find [182]: #parameters-66 [183]: #unionfind [184]: #parameters-67 [185]: #find-1 [186]: #parameters-68 [187]: #union [188]: #parameters-69 [189]: #isconnected [190]: #parameters-70 [191]: #tostring [192]: #vector [193]: #parameters-71 [194]: #size-9 [195]: #insert-4 [196]: #parameters-72 [197]: #removerange [198]: #parameters-73 [199]: #remove-4 [200]: #parameters-74 [201]: #disordered-1 [202]: #findelem-1 [203]: #parameters-75 [204]: #search-2 [205]: #parameters-76 [206]: #deduplicate-1 [207]: #uniquify-1 [208]: #traverse-1 [209]: #parameters-77 [210]: #binsearch [211]: #parameters-78 [212]: #bubblesort [213]: #parameters-79 [214]: #merge-1 [215]: #parameters-80 [216]: #mergesort-1 [217]: #parameters-81 [218]: #avl [219]: #binnode [220]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean [221]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number [222]: #bst [223]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array [224]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function [225]: #bintree [226]: #heap [227]: #listnode [228]: #list [229]: #queue [230]: #stack [231]: #trie [232]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String [233]: #unionfind [234]: #vector