2.0.0 • Published 6 years ago
list-structure v2.0.0
list-structure
Using ES6 to build linked lists, stacks, queues and other structures. Need CommonJS module support.
使用 ES6 构建的链表,栈,队列等结构,需要 CommonJS 模块的支持。
structures:
insert:
npm install --save list-structure
# or
yarn add list-structure
test:
git clone https://github.com/Lizhooh/list-structure.git
npm install
npm test
LinkedList
API
function | return | explain |
---|---|---|
size() | Number | |
append(element) | LinkedList | |
prepend(element) | LinkedList | |
forEach((item, index)) | LinkedList | |
sort(compareFunction) | LinkedList | |
remove(index) | Object | |
toArray() | Array | |
from(arr) | LinkedList | |
isEmpty() | Boolean | |
clear() | LinkedList | |
insert(index, element) | Any | |
has(callback) | Boolean | |
findIndex(callback) | Number | |
find(callback) | Any | |
set(index, element) | LinkedList | |
get(index) | Any |
example
const { LinkedList } = require('list-structure');
const list1 = new LinkedList();
list1.append('A').append('B');
console.log(list1.toArray()); // ['A', 'B']
const list2 = new LinkedList(['C', 'D']);
console.log(list2.toArray()); // ['C', 'D']
const list3 = new LinkedList();
list3.from(['E', 'F']);
console.log(list3.toArray()); // ['E', 'F']
const list4 = new LinkedList([
{ name: 'aer', id: 1 },
{ name: 'ber', id: 2 },
{ name: 'cer', id: 3 },
]);
console.log(list4.has(i => i.name === 'aer')); // true
list4.prepend({ name: 'der', id: 4 });
list4.insert(2, { name: 'eer', id: 5 });
list4.forEach(i => console.log(i));
list4.sort((a, b) => b.id - a.id);
console.log(list4.toArray().map(i => i.id)); // [5, 4, 3, 2, 1]
list4.remove(2);
console.log(list4.length) // 4
console.log(list4.get(0)); // { name: 'der', id: 4 }
list4.set(0, { name: 'fer', id: 6 });
console.log(list4.get(0)); // { name: 'fer', id: 6 }
const index = list4.findIndex(i => i.id === 6);
console.log(index); // 0
stack
Using array to implement stack structure.
API
function | return | explain |
---|---|---|
size() | Number | |
push(element) | Stack | |
pop() | Any | |
peek() | Any | |
forEach((item, index)) | Stack | |
toArray() | Array | |
from(arr) | Stack | |
isEmpty() | Boolean | |
clear() | Stack | |
has(callback) | Boolean |
example
const { Stack } = require('list-structure');
const stack1 = new Stack();
stack1.push('A').push('B').push('C');
stack1.toArray(); // ['A', 'B', 'C']
stack1.pop(); // 'C'
stack1.peek(); // 'B'
const stack2 = new Stack([{ id: 1 }, { id: 2 }]);
stack2.from([{ id: 3 }, { id: 4 }]);
stack2.size(); // 4
stack2.has(i => i.id === 3); // true
stack2.has(i => i.id === 5); // false
queue
Using array to implement queue structure.
API
function | return | explain |
---|---|---|
size() | Number | |
push(element) | Queue | |
pop() | Any | |
front() | Any | |
back() | Any | |
forEach((item, index)) | Queue | |
toArray() | Array | |
from(arr) | Queue | |
isEmpty() | Boolean | |
clear() | Queue | |
has(callback) | Boolean |
example
const { Queue } = require('list-structure');
const queue = new Queue();
queue.push('A');
queue.from(['B', 'C', 'D']);
queue.front(); // 'A'
queue.back(); // 'D'
queue.pop(); // 'A'
queue.has(i => i === 'D'); // true
queue.size(); // 3
queue.toArray(); // ['B', 'C', 'D']