Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/open-node/jstructures
JavaScript 版本的数据结构,提供常用的数据结构封装,基于清华大学邓俊辉老师的数据结构课程
https://github.com/open-node/jstructures
algorithm data-structures heap javascript queue stack tree-structure
Last synced: 1 day ago
JSON representation
JavaScript 版本的数据结构,提供常用的数据结构封装,基于清华大学邓俊辉老师的数据结构课程
- Host: GitHub
- URL: https://github.com/open-node/jstructures
- Owner: open-node
- License: mit
- Created: 2018-11-22T09:56:17.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-03-09T12:46:58.000Z (almost 6 years ago)
- Last Synced: 2024-08-08T21:35:09.973Z (6 months ago)
- Topics: algorithm, data-structures, heap, javascript, queue, stack, tree-structure
- Language: JavaScript
- Homepage: http://jstructures.xiongfei.me/
- Size: 1.43 MB
- Stars: 8
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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### Table of Contents
### 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<左高度-右高度<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]** 要交换的节点2Returns **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 <= r <= size
- `e` **Anyone**Returns **[number][221]**
### removeRange
删除指定区间的元素, 原后继元素依次前移\[lo, hi)
#### Parameters
- `lo` **[number][221]** 要删除元素起始的秩 0 <= r <= size
- `hi` **[number][221]** 要删除元素结束的秩 0 <= r <= sizeReturns **[number][221]** 删除的元素数量
### remove
删除指定秩的元素, 原后继元素依次前移
#### Parameters
- `r` **[number][221]** 要删除元素的秩 0 <= r <= 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 <= lo <= hi <= 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 <= lo <= hi <= 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