Comprehensive doubly linked list structure with:
- ES6 iterator support
- Stack & queue API (front and/or back)
- Random node access (read / write, O(n/2))
- Node insertion (also w/ custom comparator)
- Node finding (O(n))
- Node swaps (O(1))
- Reversing (O(n/2))
- Rotation (left / right) (O(1))
- Shuffling
- Slicing (sublist copies)
- Splicing (delete and/or insert)
release()
(emptying, GC friendly)concat()
/into()
map()
/filter()
/reduce()
compare()
/equiv()
toJSON()
transform (-> array)
yarn add @thi.ng/dcons
// ES5
DCons = require("@thi.ng/dcons").DCons;
// ES6 / TS
import { DCons } from "@thi.ng/dcons";
list = new DCons([1, 2, 3]);
list.length
[...list]
cons()
first()
drop()
setHead()
into()
push()
peek()
pop()
setTail()
.length
nth()
setNth()
insertBefore()
insertAfter()
insertBeforeNth()
insertAfterNth()
insertSorted()
find()
findWith()
copy()
concat()
slice()
splice()
swap()
shuffle()
reverse()
rotateLeft()
rotateRight()
release()
TODO...
- Karsten Schmidt
© 2017-2018 Karsten Schmidt // Apache Software License 2.0