common-data-structure
v0.12.0
Published
一些javaScript常用数据结构
Maintainers
Readme
common-data-structure
Help you more convenient to use some common JavaScript data structure
Table of Contents
Installing
npm install --save common-data-structureExample
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 lengthRequire
// 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() | | 查找最大的值 |
