数据结构 之 '栈'

Posted fengting0913

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构 之 '栈'相关的知识,希望对你有一定的参考价值。

"栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法

一、概念

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表,这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其下方的元素成为新的栈顶元素

二、栈的特点:后进先出

栈的代码实现

class Stack():
    def __init__(self):
        """
        初始化栈(以列表充当此数据结构的容器)
        """
        self.items = []

    def push(self, item):
        """
        进栈(由栈顶至栈底添加)
        :param item: 被添加元素
        :return:
        """
        self.items.append(item)

    def pop(self):
        """
        出栈(由栈顶向栈底取元素)
        :return: 取出的元素
        """
        return self.items.pop()

    def isEmpty(self):
        """
        空栈
        :return: 若为空栈,则返回空列表
        """
        return self.items == []

    def size(self):
        """
        栈中元素个数
        :return:
        """
        return len(self.items)

    def peek(self):
        """
        得到栈顶元素的下标
        :return:
        """
        return len(self.items) - 1


if __name__ == ‘__main__‘:
    s = Stack()
    s.push(1)
    s.push(2)
    s.push(3)

    print(s.pop())
    print(s.pop())
    print(s.pop())


# 3
# 2
# 1

# 栈这种数据结构的特点即:后进先出

以上是关于数据结构 之 '栈'的主要内容,如果未能解决你的问题,请参考以下文章

nodejs常用代码片段

Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段

Operator '||' cannot be applied to operands of type 'bool?' and 'bool?'(代码片段

项目启动报错Failed to configure a DataSource: 'url' attribute is not specified and no embedde(代码片段

Microsoft SQL Server 代码片段收集

PHP常用代码片段