zoukankan      html  css  js  c++  java
  • 一、什么是栈

      栈是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许允许在容器的一端进行计入和输出元素。由于栈数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。

     栈结构可以使用顺序表实现,也可以使用链表来实现,只需要按照栈的特点来实现即可。

    二、栈结构的实现

    class Stack:
    
        def __init__(self):
            """使用顺序表结构存储数据"""
            self._list = []
    
        def is_empty(self):
            """判断栈是否是空的"""
            return self._list == []
    
        def push(self, item):
            """添加元素,从尾部加元素,再从尾部取元素,复杂度为O(1)"""
            self._list.append(item)
    
        def pop(self):
            """取出元素"""
            return self._list.pop()
    
        def peek(self):
            """返回栈顶元素"""
            return self._list[len(self._list) - 1]
    
        def size(self):
            """返回栈的大小"""
            return len(self._list)

    栈没有规定那一端必须作为操作的位置,只需要保证压栈和出栈都是同一端即可,比如:使用append进行尾部压栈操作,然后使用pop进行尾部出栈操作。

    作者:iveBoy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    [SHOI2008]堵塞的交通
    [SHOI2008]汉诺塔
    [JSOI2008]最小生成树计数
    [JSOI2008]球形空间产生器
    [HNOI2014]画框
    HDU 2255 奔小康赚大钱
    [SDOI2017]新生舞会
    [BZOJ2285][SDOI2011]保密
    [BZOJ3232]圈地游戏
    [HDU5909]Tree Cutting
  • 原文地址:https://www.cnblogs.com/shenjianping/p/14457898.html
Copyright © 2011-2022 走看看