python如何根据入栈序列判断出栈队列是否是可能的出栈队列

class MyStack:
    """先实现栈"""
    def __init__(self):
        self.item = []
    #判断栈是否为空
    def isEmpty(self):
        return  not self.item
    #返回栈的大小(就是列表长度)
    def size(self):
        return len(self.item)
    #返回栈顶元素(就是列表尾部的元素)
    def top(self):
        if self.item:
            return self.item[-1]
        else:
            return None
    #弹出栈顶元素
    def pop(self):
        if len(self.item)>0:
            return self.item.pop()
        elif len(self.item) == 0:
            print("栈已经为空")
            return None
    #压入一个元素item到栈顶
    def push(self,item):
        self.item.append(item)
#判断出栈顺序的正确性
def isPopSerial(push,pop):
    pushIndex = 0
    popIndex = 0
    if push == None or pop == None:
        return False
    if len(push) != len(pop):
        return False
    else:
        s = MyStack()
        s.push(push[0])
        while popIndex < len(push):#能根据规则正常弹出

你可能感兴趣的:(数据结构与算法,python,数据结构与算法)