0.12.0 • Published 3 years ago
common-data-structure v0.12.0
common-data-structure
Help you more convenient to use some common JavaScript data structure
Table of Contents
Installing
npm install --save common-data-structure
Example
const { Stack } = require('common-data-structure')
const stack = new Stack() // create an instance
stack.push(5) // add an element
stack.push(6)
stack.peek() // peek top of stack element
stack.push(8)
stack.isEmpty() // Is the stack empty
stack.size() // stack length
Require
// import your required classes
const {
Queue,
Deque,
Stack,
LinkedList,
DoublyLinkedList,
Set,
HashMap,
BinarySearchTree,
MinHead,
MaxHead
} = require('common-data-structure')
API
Queue
方法名称 | 参数 | 描述 |
---|---|---|
enqueue(element) | element: 元素 | 向队列尾部添加一个(或多个)新的项 |
dequeue() | 移除队列的第一项(即排在队列最前面的项)并返回被移除的元素 | |
peek() | 返回队列中第一个元素——最先被添加,也将是最先被移除的元素 | |
isEmpty() | 如果队列中不包含任何元素,返回 true,否则返回 false | |
size() | 返回队列包含的元素个数,与数组的 length 属性类似 | |
clear() | 清空队列中所有的元素 | |
toString() | 返回字符串 |
Deque
方法名称 | 参数 | 描述 |
---|---|---|
addFront(element) | element: 元素 | 在双端队列前添加新的元素 |
addBack(element) | element: 元素 | 在双端队列后端添加新元素 |
removeFront() | 在双端队列前端移除第一个元素 | |
removeBack() | 在双端队列后端移除第一个元素 | |
peekFront() | 返回双端队列前端的一个元素 | |
peekBack() | 返回双端队列后端的第一个元素 | |
isEmpty() | 如果队列中不包含任何元素,返回 true,否则返回 false | |
size() | 返回队列包含的元素个数,与数组的 length 属性类似 | |
clear() | 清空队列中所有的元素 | |
toString() | 返回字符串 |
Stack
方法名称 | 参数 | 描述 |
---|---|---|
push(element) | element: 元素 | 向栈添加元素 |
pop() | 从栈移除元素 | |
peek() | 查看栈顶元素 | |
isEmpty() | 检查栈是否为空 | |
size() | 移除栈里的所有元素 | |
toString() | 返回对象的字符串表示形式 |
LinkedList
方法名称 | 参数 | 描述 |
---|---|---|
push(element) | element: 元素 | 向链表尾部添加一个新元素 |
insert(element) | element: 元素; index: 插入元素的位置 | 向链表的特定位置插入一个新元素 |
getElementAt(index) | index: 元素的位置 | 在双端队列前端移除第一个元素 |
removeBack(index) | index: 元素的位置 | 返回链表中特定位置的元素。如果链表中不存在这样的元素,则返回 undefined |
remove(element) | element: 元素 | 从链表中移除一个元素 |
indexOf(element) | element: 元素 | 返回元素在链表中的索引。如果链表中没有改元素则返回 -1 |
removeAt(index) | index: 元素的位置 | 从链表的特定位置移除一个元素 |
isEmpty() | 判断链表是否为空 | |
getHead() | 获取链表的头节点 | |
toString() | 返回表示整个链表的字符串 |
DoublyLinkedList
方法名称 | 参数 | 描述 |
---|---|---|
push(element) | element: 元素 | 向链表尾部添加一个新元素 |
insert(element) | element: 元素; index: 插入元素的位置 | 向链表的特定位置插入一个新元素 |
getElementAt(index) | index: 元素的位置 | 在双端队列前端移除第一个元素 |
removeBack(index) | index: 元素的位置 | 返回链表中特定位置的元素。如果链表中不存在这样的元素,则返回 undefined |
remove(element) | element: 元素 | 从链表中移除一个元素 |
indexOf(element) | element: 元素 | 返回元素在链表中的索引。如果链表中没有改元素则返回 -1 |
removeAt(index) | index: 元素的位置 | 从链表的特定位置移除一个元素 |
isEmpty() | 判断链表是否为空 | |
getHead() | 获取链表的头节点 | |
toString() | 返回表示整个链表的字符串 |
Set
方法名称 | 参数 | 描述 |
---|---|---|
add(element) | element: 元素 | 向集合添加一个新元素 |
delete(element) | element: 元素 | 从集合中移除一个元素 |
has(element) | element: 元素 | 判断元素是否在集合中,存在则返回true,否则返回false |
clear() | 移除集合中的所有元素 | |
size() | 返回集合所包含元素的数量 | |
values() | 返回一个包含集合中所有元素的数组 |
HashMap
方法名称 | 参数 | 描述 |
---|---|---|
set(key, value) | key: 键; value: 值 | 向散列表增加一个新的项 |
delete(key) | key: 键 | 根据键值移除值 |
get(key) | key: 键 | 根据键值返回特定的值 |
hasKey() | key: 键 | 判断某键值是否存在散列表中 |
clear() | 删除字典中所有值 | |
size() | 返回字典包含的数量 | |
isEmpty() | 字典是否为空 | |
keys() | 将字典所包含的所有键名以数组形式返回 | |
values() | 将字典所包含的所有数值以数组形式返回 | |
keyValues() | 将字典中所有{键,值}对返回 | |
forEach() | 迭代字典中所有的键值对 | |
toString() | 返回 hashmap 的字符串 |
BinarySearchTree
方法名称 | 参数 | 描述 |
---|---|---|
insert(key) | key: 键 | 向树中插入一个新的键 |
search(key) | key: 键 | 在树中查找一个键 |
inOrderTraverse(callback) | callback: 回调函数 | 中序遍历所有节点 |
preOrderTraverse(callback) | callback: 回调函数 | 先序遍历所有节点 |
postOrderTraverse(callback) | callback: 回调函数 | 后序遍历所有节点 |
min() | 返回树中最小的值/键 | |
max() | 返回树中最大的值/键 | |
remove(key) | key: 键 | 从树中移除某个键 |
MinHead
方法名称 | 参数 | 描述 |
---|---|---|
insert(value) | value: 值 | 向堆中插入一个新的值 |
extract() | 移除最小值 | |
size() | 堆的大小 | |
isEmpty() | 是否为空 | |
clear() | 清除数据 | |
findMinimum() | 查找最小的值 |
MaxHead
方法名称 | 参数 | 描述 |
---|---|---|
insert(value) | value: 值 | 向堆中插入一个新的值 |
extract() | 移除最大值 | |
size() | 堆的大小 | |
isEmpty() | 是否为空 | |
clear() | 清除数据 | |
findMaxmum() | 查找最大的值 |
0.12.0
3 years ago
0.11.0
3 years ago
0.10.0
3 years ago
0.9.0
3 years ago
0.8.0
3 years ago
0.7.0
3 years ago
0.6.4
3 years ago
0.6.3
3 years ago
0.6.2
3 years ago
0.6.1
3 years ago
0.6.0
3 years ago
0.5.0
3 years ago
0.4.0
3 years ago
0.3.5
3 years ago
0.3.4
3 years ago
0.3.3
3 years ago
0.2.3
3 years ago
0.2.2
3 years ago
0.1.2
3 years ago
0.1.1
3 years ago
0.1.0
3 years ago