栈结构
一,栈结构
1.栈stack,是一种运算首先的线性表,先进后出(LIFO)
2.其限制是仅允许在表的一端进行插入和删除运算,这一端成为栈顶,相对的,把另一端成为栈底
3.向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;
从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
4.函数调用栈
5.
x.toString()
6.我们一般称函数内的函数为方法
7.js三元表达式
(expression1) ? (expression2) : (expression3)
在 expression1 求值为 true 时的值为 expression2 ,在expression1 求值是 false 时的值为 expression3
8.
补充
补充:栈(Stack)是一种仅允许在栈顶进行插入(push)和删除(pop)操作的线性表,遵循 LIFO(Last In First Out,后进先出) 原则。
- 栈顶 / 栈底:允许操作的一端为栈顶,另一端为栈底。
- 进栈(push)/ 出栈(pop):时间复杂度均为 O(1),访问栈底元素需先弹出栈顶元素。
- 应用:函数调用栈、表达式求值(中缀转后缀)、括号匹配、十进制转二进制、撤销/重做、浏览器前进/后退、单调栈、DFS 非递归实现。
class Stack { constructor() { this.items = []; } push(item) { this.items.push(item); } pop() { return this.items.pop(); } peek() { return this.items[this.items.length - 1]; } isEmpty() { return this.items.length === 0; } size() { return this.items.length; } }
来源整理自:我的有道云笔记



