关于#python#的问题,如何解决?

1、顺序栈(循环队列)的判空、进栈、出栈、获取栈顶元素(获取队头元素)等基本操作及算法实现。
2、链栈(栈队)的判空、进栈(进队)、出栈(出队)、获取栈顶元素(获取队头元素)等基本操作及算法实现。
3、在顺序栈(顺序队)基本运算的基础上实现相关应用算法。
4、在链栈(链队)基本运算的基础上实现相关应用算法。

参考一下
https://blog.csdn.net/lishundi/article/details/87905666

比较标准的写法,直接抄ChatGPT的答案吧:
顺序栈

class SequentialStack:
    def __init__(self, max_size):
        self.max_size = max_size
        self.stack = [None] * max_size
        self.top = 0
        
    def is_empty(self):
        return self.top == 0
        
    def is_full(self):
        return self.top == self.max_size
        
    def push(self, value):
        if self.is_full():
            raise ValueError("Stack is full.")
        self.stack[self.top] = value
        self.top += 1
        
    def pop(self):
        if self.is_empty():
            raise ValueError("Stack is empty.")
        self.top -= 1
        value = self.stack[self.top]
        self.stack[self.top] = None
        return value
        
    def get_top(self):
        if self.is_empty():
            raise ValueError("Stack is empty.")
        return self.stack[self.top-1]

链栈

class Node:
    def __init__(self, value=None, next=None):
        self.value = value
        self.next = next

class LinkedStack:
    def __init__(self):
        self.top = None
        
    def is_empty(self):
        return self.top is None
        
    def push(self, value):
        node = Node(value)
        node.next = self.top
        self.top = node
        
    def pop(self):
        if self.is_empty():
            raise ValueError("Stack is empty.")
        value = self.top.value
        self.top = self.top.next
        return value
        
    def get_top(self):
        if self.is_empty():
            raise ValueError("Stack is empty.")
        return self.top.value
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^