码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构 之 '栈'

时间:2020-07-15 12:50:17      阅读:50      评论:0      收藏:0      [点我收藏+]

标签:end   pen   运算   出栈   这一   返回   ram   入栈   __name__   

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

一、概念

栈(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

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

数据结构 之 '栈'

标签:end   pen   运算   出栈   这一   返回   ram   入栈   __name__   

原文地址:https://www.cnblogs.com/fengting0913/p/13303986.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!