1、栈的定义
栈是一种遵从后进先出(LIFO)原则的有序集合。新添加的或待删除的元素都保存在栈的同一端,称作栈顶,另一端就叫栈底。在栈里,新元素都靠近栈顶,旧元素都接近栈底。
(学习JavaScript数据结构与算法(第三版))
2、栈结构的实现
1、栈的常见操作
push()
添加一个新元素到栈顶位置。
pop()
移除栈顶的元素,同时返回被移除的元素。
peek()
返回栈顶的元素,不对栈做任何修改(该方法不会移除栈顶的元素,仅仅返回它)。
isEmpty()
如果栈里没有任何元素就返回true
,否则返回false
。
size()
返回栈里的元素个数。这个方法和数组的length
属性类似。
toString()
将栈结构的内容以字符串的形式返回。
2、代码实现
//由于js中没有栈数据类型,所有用数组来模拟
function Stack() {
this.array = [];
//添加一个新元素到栈顶
Stack.prototype.push = function (element) {
return this.array.push(element);
};
//从栈中取出元素,并返回取出的那个元素
Stack.prototype.pop = function () {
return this.array.pop();
};
//返回栈顶元素
Stack.prototype.peek = function () {
if (this.array.length) {
return this.array[this.array.length - 1];
};
};
//判断栈是否为空
Stack.prototype.isEmpty = function () {
return this.array.length === 0;
};
//栈的元素个数
Stack.prototype.size = function () {
return this.array.length;
};
//返回字符
Stack.prototype.toString = function () {
let result = '';
for (let i = 0; i <= this.array.length - 1; i++) {
result += this.array[i];
};
return result;
};
};
3、总结
记录学习,当个笔记