Home Manual Reference Source Test Repository

src/NodeStack.js

import Node from './Node' ;

/**
 * NodeStack#peek only valid if NodeStack#empty is false.
 * NodeStack#pop only valid if NodeStack#empty is false.
 */

export default function NodeStack ( ) {

	this.top = null ;

}

NodeStack.prototype.empty = function ( ) {

	return this.top === null ;

} ;

/**
 * Only valid if NodeStack#empty is false.
 */

NodeStack.prototype.peek = function ( ) {

	return this.top.value ;

} ;

NodeStack.prototype.push = function ( value ) {

	this.top = new Node( value , this.top ) ;

} ;

/**
 * Only valid if NodeStack#empty is false.
 */

NodeStack.prototype.pop = function ( ) {

	const value = this.top.value ;

	this.top = this.top.next ;

	return value ;

} ;