美文网首页
python使用顺序表实现栈

python使用顺序表实现栈

作者: 于饼喵 | 来源:发表于2020-07-11 19:42 被阅读0次

1. 栈

栈:是一种容器,可以存入数据元素,访问元素,删除元素,特点在于只能允许在容器的一段【栈顶】输入和输出数据。原理运作为后进先出【先进后出】

1.1栈的构造

1.1.1 构造函数

  • 使用顺序表list作为栈的容器
  • 将list设为私有
def __init__(self):
        # 使用python的list作为栈的容器
        self.__list = []

1.1.2 push函数

  • 作用:压栈
  • 可以自行选择将列表的头部或尾部作为栈顶
  • 但是由于链表的尾部操作时间复杂度更低,因此使用尾部插入【即将尾部作为栈顶】
 def push(self,item):
        """添加一个新元素item到栈顶"""
        self.__list.append(item)

1.1.3 pop函数

  • 作用:弹栈
  • 使用pop方法,从尾部弹出。返回list的末尾元素
def pop(self):
        """弹出栈顶元素"""
        return self.__list.pop()

1.1.4 peek函数

  • 作用:返回栈顶的元素
  • 使用__list[-1]将列表的最后一个元素返回
    【注意】
  • 由于列表为空时不支持负索引操作,因此需要先判断列表是否为空,如果为空则返回None
def peek(self):
        """返回栈顶元素"""
        if self.__list:
            return self.__list[-1]
        else:
            return None

1.1.5 is_empty函数

  • 作用:判断栈是否为空
  • 如果self.__list == [],则返回 True
 def is_empty(self):
        """判断栈是否为空"""
        return self.__list == []

1.1.5 size函数

  • 作用:返回栈的元素个数
  • 使用len即可
def size(self):
        """返回栈的元素个数"""
        return len(self.__list)

2.完整代码

class stack(object):
    """栈的实现"""
    def __init__(self):
        # 使用python的list作为栈的容器
        self.__list = []
        
    def push(self,item):
        """添加一个新元素item到栈顶"""
        self.__list.append(item)
        
    def pop(self):
        """弹出栈顶元素"""
        return self.__list.pop()
    def peek(self):
        """返回栈顶元素"""
        if self.__list:
            return self.__list[-1]
        else:
            return None
    
    def is_empty(self):
        """判断栈是否为空"""
        return self.__list == []
    
    def size(self):
        """返回栈的元素个数"""
        return len(self.__list)

相关文章

  • python使用顺序表实现栈

    1. 栈 栈:是一种容器,可以存入数据元素,访问元素,删除元素,特点在于只能允许在容器的一段【栈顶】输入和输出数据...

  • 栈 Python实现

    栈的顺序表实现 栈的链接表实现

  • 2018-07-09顺序表实现栈

    栈的实现 ——直接用顺序表(列表list)进行 栈结构实现 栈可以用顺序表实现,也可以用链表实现。 栈的操作 St...

  • 堆栈

    由于栈是一个有穷线性表,所以任何实现表的方法都能实现栈(list,vector...)基本操作 顺序栈 采用顺序存...

  • 数据结构与算法(五,栈和栈的应用,递归思想)

    栈 栈是只在尾部做添加和删除的线性表 栈的顺序结构方式 栈的顺序存储结构是使用数组实现的,Stack继承了Vect...

  • 栈(顺序栈)

    栈:限定只能在表尾进行插入和删除的线性表。 顺序栈:使用数组实现的栈。 栈特性: 允许插入和删除的一端叫栈顶(to...

  • C语言实现链栈以及基本操作

    链栈,即用链表实现栈存储结构。链栈的实现思路同顺序栈类似,顺序栈是将数顺序表(数组)的一端作为栈底,另一端为栈顶;...

  • 04栈和队列(特殊的线性表)

    1.栈 1.栈 栈:栈是限定仅在表尾进行插入和删除操作的特殊的线性表。线性表按照存储结构分有顺序存储结构实现的顺序...

  • Python实现栈和队列以及使用list模拟栈和队列

    Python实现栈和队列 Python使用list模拟栈和队列

  • 04_顺序表实现栈和队列[Python]

    栈和队列都可以通过通过顺序表和链表来实现,本文以顺序表为例,下一篇为链表。 1. 什么是栈 栈(stack),有些...

网友评论

      本文标题:python使用顺序表实现栈

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