Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Stack<T>

Stack (LIFO - last-in-first-out)

In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations:

  • push, which adds an element to the collection, and
  • pop, which removes the most recently added element that was not yet removed.

The order in which elements come off a stack gives rise to its alternative name, LIFO (last in, first out). Additionally, a peek operation may give access to the top without modifying the stack. The name "stack" for this type of structure comes from the analogy to a set of physical items stacked on top of each other, which makes it easy to take an item off the top of the stack, while getting to an item deeper in the stack may require taking off multiple other items first.

Stack source: dev.to

Complexity

Algorithm Average Worst case
Access O(n) O(n)
Search O(n) O(n)
Insert O(1) O(1)
Delete O(1) O(1)
- - -
Space O(n) O(n)

Reference

import { Stack } from '@pencroff/ts-algorithms/dist/structure/linked';
const q = new Stack([1, 2, 3])

Stack based on LinkedList

Type parameters

  • T

Hierarchy

  • Stack

Index

Constructors

Properties

Accessors

Methods

Constructors

constructor

  • new Stack(initArr?: T[]): Stack

Properties

Private _list

_list: LinkedList<T>

Accessors

length

  • get length(): number

Methods

__@iterator

  • __@iterator(): Iterator<T>

clear

  • clear(): void

has

  • has(value: T): boolean

peek

  • peek(): T

pop

  • pop(): T

push

  • push(value: T): void

toArray

  • toArray(): T[]