美文网首页
JavaScript实现栈算法

JavaScript实现栈算法

作者: 梅西东恩 | 来源:发表于2022-03-29 12:29 被阅读0次

    什么是栈

    栈(stack)是一种运算受限的线性表:

    LIFO(last in first out)表示就是后进入的元素,第一个弹出栈空间。类似于自动餐托盘,最后放上的托盘,往往先把拿出去使用。

    其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。

    向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;

    从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

    JavaScript 代码实现栈结构

     // push() 添加一个新元素到栈顶位置。

            // pop() 移除栈顶的元素,同时返回被移除的元素。

            // peek() 返回栈顶的元素,不对栈做任何修改(该方法不会移除栈顶的元素,仅仅返回它)。

            // isEmpty() 如果栈里没有任何元素就返回 true,否则返回 false。

            // size() 返回栈里的元素个数。这个方法和数组的 length 属性类似。

            // toString() 将栈结构的内容以字符串的形式返回。

            // 初始化栈类

            class Stack {

                constructor(){

                    this.items = []

                }

                // push() 添加一个新元素到栈顶位置。

                push(item){

                    this.items.push(item)

                }

                // pop() 移除栈顶的元素,同时返回被移除的元素。

                pop(item){

                    this.items.pop(item)

                }

                // peek() 返回栈顶的元素,不对栈做任何修改(该方法不会移除栈顶的元素,仅仅返回它)。

                peek(){

                    return this.items[this.items.length - 1 ]

                }

                // isEmpty() 如果栈里没有任何元素就返回 true,否则返回 false。

                isEmpty(){

                    return this.items.length === 0

                }

                // size() 返回栈里的元素个数。这个方法和数组的 length 属性类似。

                size(){

                    return this.items.length

                }

                // toString() 将栈结构的内容以字符串的形式返回。

                toString(){

                    let itemStr = ''

                    this.items.forEach(item => {

                        itemStr += item + ''

                    });

                    return itemStr

                }

            }

            const stack = new Stack()

            stack.push(1);

            console.log("栈的初始化:", stack);

            console.log("================");

            stack.push(2);

            console.log("栈的初始化:", stack);

            console.log("================");

            stack.push(3)

            console.log("栈的初始化:", stack);

            console.log("================");

            let strStack = stack.toString()

            console.log(strStack);

    相关文章

      网友评论

          本文标题:JavaScript实现栈算法

          本文链接:https://www.haomeiwen.com/subject/jimvjrtx.html