棧(stack)又名堆棧,它是一種運算受限的線性表。其限制是僅容許在表的一端進行插入和刪除運算。這一端被稱爲棧頂,相對地,把另外一端稱爲棧底。向一個棧插入新元素又稱做進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成爲新的棧頂元素;從一個棧刪除元素又稱做出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成爲新的棧頂元素。
class Stack{ constructor(){ this.item = [] } push(element){ this.item.push(element) } pop(){ return this.item.pop() } peek(){ return this.item[this.item.length-1] } isEmpty(){ return this.item.length === 0 } clear(){ this.item = [] } size(){ return this.item.length } }
隊列是一種特殊的線性表,特殊之處在於它只容許在表的前端(front)進行刪除操做,而在表的後端(rear)進行插入操做,和棧同樣,隊列是一種操做受限制的線性表。進行插入操做的端稱爲隊尾,進行刪除操做的端稱爲隊頭。
class Queue{
constructor(){ this.item = [] } enqueue(element){ this.item.push(element) } dequeue(){ return this.item.shift() } front(){ return this.item[0] } isEmpty(){ return this.item.length === 0 } size(){ return this.item.length }
}前端