@datastructures-js/stack

stack implementation in javascript

Usage no npm install needed!

<script type="module">
  import datastructuresJsStack from 'https://cdn.skypack.dev/@datastructures-js/stack';
</script>

README

@datastructures-js/stack

build:? npm npm npm

A wrapper around javascript array push/pop with a standard stack interface.

Contents

Install

npm install --save @datastructures-js/stack

require

const { Stack } = require('@datastructures-js/stack');

import

import { Stack } from '@datastructures-js/stack';

API

constructor

JS
// empty stack
const stack = new Stack();

// from an array
const stack = new Stack([10, 3, 8, 40, 1]);
TS
// empty stack
const stack = new Stack<number>();

// from an array
const stack = new Stack<number>([10, 3, 8, 40, 1]);

Stack.fromArray(elements)

JS
// empty stack
const stack = Stack.fromArray([]);

// with elements
const list = [10, 3, 8, 40, 1];
const stack = Stack.fromArray(list);

// If the list should not be mutated, use a copy of it.
const stack = Stack.fromArray(list.slice());
TS
// empty stack
const stack = Stack.fromArray<number>([]);

// with elements
const list = [10, 3, 8, 40, 1];
const stack = Stack.fromArray<number>([10, 3, 8, 40, 1]);

.push(element)

push an element to the top of the stack.

params return runtime
element: T Stack<T> O(1)
stack.push(11);

.peek()

returns the top element in the stack.

return runtime
T O(1)
console.log(stack.peek()); // 11

.pop()

removes and returns the top element of the stack.

return runtime
T O(1)
console.log(stack.pop()); // 11
console.log(stack.peek()); // null

.isEmpty()

checks if the stack is empty.

return runtime
boolean O(1)
stack.push(11);
console.log(stack.isEmpty()); // false

.size()

returns the number of elements in the stack.

return runtime
number O(1)
console.log(stack.size()); // 1

.clone()

creates a shallow copy of the stack.

return runtime
Stack<T> O(n)
const stack = Stack.fromArray([{ id: 2 }, { id: 4 } , { id: 8 }]);
const clone =  stack.clone();

clone.pop();

console.log(stack.peek()); // { id: 8 }
console.log(clone.peek()); // { id: 4 }

.toArray()

returns a copy of the remaining elements as an array.

return runtime
T[] O(n)
console.log(stack.toArray()); // [{ id: 2 }, { id: 4 } , { id: 8 }]

.clear()

clears all elements from the stack.

runtime
O(1)
stack.clear();
stack.size(); // 0

Build

grunt build

License

The MIT License. Full License is here