Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ngryman/ds-linked-list
A simply linked list data structure in JavaScript.
https://github.com/ngryman/ds-linked-list
datastructures linked-list simply
Last synced: about 1 month ago
JSON representation
A simply linked list data structure in JavaScript.
- Host: GitHub
- URL: https://github.com/ngryman/ds-linked-list
- Owner: ngryman
- Created: 2017-02-10T17:10:52.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-08-04T20:03:08.000Z (over 7 years ago)
- Last Synced: 2024-11-14T10:49:19.815Z (about 2 months ago)
- Topics: datastructures, linked-list, simply
- Language: JavaScript
- Size: 58.6 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
A simply linked list data structure in JavaScript.* * *
## Big-O
| | Access | Search | Insertion | Deletion
| --------| ------ | ------ | --------- | --------
| Average | `Θ(n)` | `Θ(n)` | `Θ(1)` | `Θ(1)`
| Worst | `O(n)` | `O(n)` | `O(1)` | `O(1)`## Install
```bash
yarn add ds-linked-list
```## API
### LinkedList
Class
#### insert
Insert an item at the end of the list.
**Parameters**
- `item` **any**
**Examples**
```javascript
list.insert(1)
list.insert('foo')
list.insert({ foo: 'bar' })
```#### insertAfter
Insert an item after another one.
**Parameters**
- `ref` **any**
- `item` **any****Examples**
```javascript
list.insertAfter(1, 2)
list.insert('foo', 'bar')
list.insert(ref, { baz: 'qux' })
```#### insertAt
Insert an item at the given index.
**Parameters**
- `k` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)**
- `item` **any****Examples**
```javascript
list.insertAt(1, 2)
list.insert(1, 'bar')
list.insert(1, { baz: 'qux' })
```#### remove
Remove an item.
**Parameters**
- `item` **any**
**Examples**
```javascript
list.remove(1)
list.remove('foo')
list.remove({ foo: 'bar' })
```#### has
Return `true` if the item is in the list.
**Parameters**
- `item` **any**
**Examples**
```javascript
list.has(1)
// => true
list.has('foo')
// => true
list.has(null)
// => false
```Returns **[Boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
#### at
Return the item at the given index or `-1`.
**Parameters**
- `k` **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)**
**Examples**
```javascript
list.at(0)
// => 1
list.at(1)
// => 'foo'
list.at(1337)
// => undefined
```Returns **any**
#### entries
Return an array containing all the items.
**Examples**
```javascript
list.entries()
// => [ 1, 'foo', { foo: 'bar' }]
```Returns **[Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)**
#### inspect
Return a string representation of the list.
**Examples**
```javascript
list.entries()
// => [ 1, 'foo', { foo: 'bar' }]
```Returns **[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)**
#### length
Return the number of items in the list.
**Examples**
```javascript
list.length()
// => 3
```Returns **[Number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)**
#### iterator
Iterate over the list.
**Examples**
```javascript
for (let item of list) {
console.log(item)
}
// => 1
// => 'foo'
// => { foo: 'bar' }
```## License
MIT © [Nicolas Gryman](http://ngryman.sh)