Python数据结构之栈类实现

1、栈

Python栈,栈是含有一组对象的容器,支持快速后进先出(LIFO)的插入和删除操作。与列表或数组不同,栈通常不允许随机访问所包含的对象。插入和删除操作通常称为入栈(push)和出栈(pop)。

2、栈的操作

  • Stack()创建一个新的空栈
  • push(item)添加一个新的元素item到栈顶
  • pop()弹出栈顶元素
  • peek()返回栈顶元素
  • is_full栈是否已满
  • is_empty()判断栈是否为空
  • size()返回栈的元素个数

3、代码示例

class Stack():
    def __init__(self, size):
        self.size = size    # 栈可容纳的数量
        self.stack = []
        self.top = -1
 
    def push(self, ele):  # 入栈之前检查栈是否已满
        if self.isfull():
            raise Exception("out of range")
        else:
            self.stack.append(ele)
            self.top = self.top + 1
 
    def pop(self):  # 出栈之前检查栈是否为空
        if self.isempty():
            raise Exception("stack is empty")
        else:
            self.top = self.top - 1
            return self.stack.pop()
    
    def peek(self):
        """返回栈顶元素"""
        return self.items[len(self.items)-1]
 
    def is_full(self):
        return self.top + 1 == self.size
 
    def is_empty(self):
        return self.top == -1

参考:

https://blog.csdn.net/m0_46204224/article/details/107774211
https://www.cainiaoya.com/python/python-ds-stack.html

posted @ 2024-12-25 12:05  星空28  阅读(22)  评论(0)    收藏  举报