栈是一种线性存储结构,其特点是只能从一端进行数据的存取操作,另一端是封闭的。栈遵循“先进后出”(LIFO)的原则,即最先存入栈的元素最后被取出。栈的开口端称为栈顶**,封闭端称为栈底

class Stack:
    def  __init__(self):#构造方法
        self.stack = []

    def push(self,item):#压栈
        self.stack.append(item)
    """
    列表的添加元素方法:
    __.extend()追加元素;可以以列表的形式追加,
    如果是字符串,则以是每个字符追加
    """
    def pop(self):#弹栈
        if not self.is_empty():
            return self.stack.pop()
        else:
            return IndexError("pop from empty stack")#异常处理,防止代码报错中断

    def is_empty(self):#判断栈是否为空
        return len(self.stack) == 0

    def size(self):#栈大小
        return len(self.stack)

    def peek(self):#栈顶元素
        if not self. is_empty() :
            return self.stack[-1]
        else:
            return IndexError("pop from empty stack")

stack = Stack()
stack.push(7)
stack.push(8)
stack.push(9)
"""
加入元素时,可以用for i  in range(start,stop,step):方法
start起始值 stop 停止值 step 步长
"""

print("取栈顶元素",stack.peek())
print("栈的长度",stack.size())
print("栈元素弹出",stack.pop())
print("判断栈是否为空",stack.is_empty())

运行结果:

更多推荐