2.0.0 • Published 6 years ago

list-structure v2.0.0

Weekly downloads
2
License
ISC
Repository
github
Last release
6 years ago

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

functionreturnexplain
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

functionreturnexplain
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

functionreturnexplain
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']
2.0.0

6 years ago

1.2.1

6 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.0

7 years ago