栈结构

一,栈结构

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; }
}

来源整理自:我的有道云笔记