@datastructures-js/stack
TypeScript icon, indicating that this package has built-in type declarations

3.1.4 • Public • Published

@datastructures-js/stack

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

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

adds an element to the top of the stack.

stack.push(11);

peek

returns the top element in the stack.

console.log(stack.peek()); // 11

pop

removes and returns the top element of the stack.

console.log(stack.pop()); // 11
console.log(stack.peek()); // null

isEmpty

checks if the stack is empty.

stack.push(11);
console.log(stack.isEmpty()); // false

size

returns the number of elements in the stack.

console.log(stack.size()); // 1

clone

creates a shallow copy of the stack.

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.

console.log(stack.toArray()); // [{ id: 2 }, { id: 4 } , { id: 8 }]

clear

clears all elements from the stack.

stack.clear();
stack.size(); // 0

Build

grunt build

License

The MIT License. Full License is here

Package Sidebar

Install

npm i @datastructures-js/stack

Weekly Downloads

2,301

Version

3.1.4

License

MIT

Unpacked Size

8.22 kB

Total Files

8

Last publish

Collaborators

  • eyas-ranjous