Package Exports
- list-structure
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (list-structure) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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-structuretest:
git clone https://github.com/Lizhooh/list-structure.git
npm install
npm testLinkedList
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); // 0stack
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); // falsequeue
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']