基础数据结构--手动用数组实现栈及其相关方法

栈的定义:栈是一种特殊的列表,栈内的元素只能通过栈的一端去访问,就是栈顶,所以栈就有了先进后出的特点。也就是说除了栈顶可以访问栈内元素,其他都不可以。一般操作栈的方法有以下三个:

  • push(): 将元素押入到栈内;
  • pop(): 从栈顶删除一个元素,永久性从栈顶删除
  • peek(): 返回栈顶元素,不删除栈顶元素;
  • clear(): 清除栈;
  • top:保存栈顶元素。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    function Stack () {
    // 存储数据的数组
    this.dataStore = []
    // 栈顶元素
    this.top = 0
    // 押入栈的方法
    this.push = push
    // 删除栈顶元素的方法
    this.pop = pop
    // 返回栈顶元素的方法
    this.peek = peek
    // 清楚栈的方法
    this.clear = clear
    // 保存栈的长度
    this.length = length
    }
    function push (item) {
    this.dataStore[this.top++] = item
    }
    function pop (item) {
    return this.dataStore[this.top--] = item
    }
    function peek (item) {
    return this.dataStore[this.top - 1]
    }
    function clear () {
    this.top = 0
    }
    function length () {
    return this.top
    }
    // 测试
    let stack = new Stack()
    注:栈的运用还是有多种,最为典型的如,判断字符串回文,递归计算某个数的阶乘,将一个数制转换成另一种数制。
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2022 Lee
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信