数组
栈(stack),它是一种运算受限的线性表,后进先出(LIFO)
栈的常见操作
push(element):添加一个新元素到栈顶位置。
pop():移除栈顶的元素,同时返回被移除的元素.
peek():返回栈顶的元素,不对栈做任何修改(这个方法不会移除栈顶的元素,仅仅返回它)
isEmpty():如果栈里没有任何元素就返回true,否则返回false
size():返回栈里的元素个数。这个方法和数组的length属性类似
toString():将栈结构的内容以字符形式返回
// 栈类
function Stack() {
// 栈中的属性
var items = []
// 栈相关的方法
// 压栈操作
this.push = function (element) {
items.push(element)
}
// 出栈操作
this.pop = function () {
return items.pop()
}
// peek操作
this.peek = function () {
return items[items.length - 1]
}
// 判断栈中的元素是否为空
this.isEmpty = function () {
return items.length == 0
}
// 获取栈中元素的个数
this.size = function () {
return items.length
}
}队列的常见操作
enqueue(element):向队列尾部添加一个(或多个)新的项
dequeue():移除队列的第一(即排在队列最前面的)项,并返回被移除的元素
front():返回队列的第一个元素——最先被添加,也将是最先被移除的元素。队列不做任何变动(不移除元素,只返回元素信息——与stack类的peek方法类似)
isEmpty():如果队列中不包含任何元素,返回true,否则返回false
size():返回队列包含的元素个数,与数组的length属性类似
toString():将队列的内容,转成字符串形式
// 自定义队列
function Queue() {
var items = []
// 队列操作的方法
// enter queue方法
this.enqueue = function (element) {
items.push(element)
}
// delete queue方法
this.dequeue = function () {
return items.shift()
}
// 查看前端的元素
this.front = function () {
return items[0]
}
// 查看队列是否为空
this.isEmpty = function () {
return items.length == 0
}
// 查看队列中元素的个数
this.size = function () {
return items.length
}
}原文:https://www.cnblogs.com/oreic/p/12456623.html