牛大爷的算法日记——顺序栈

《数据结构与算法》——代码篇

4-1 顺序栈:判空、获取栈顶元素、入栈、出栈、遍历 

#顺序栈

class StackUnderflow(IndexError):
    pass


class SStack:
    def __init__(self):
        self._elem = []

    # 判空
    def is_empty(self):
        return self._elem == []

    # 获取栈顶元素
    def top(self):
        if not self._elem:
            raise StackUnderflow("in SStack.top()")
        return self._elem[-1]

    # 入栈
    def push(self, elem):
        self._elem.append(elem)

    # 出栈
    def pop(self):
        if not self._elem:
            raise StackUnderflow("in SStack.pop()")
        return self._elem.pop()

    # 遍历
    def travel(self):
        for i in self._elem:
            print(i, end=" ")
        print()


if __name__ == "__main__":
    st1 = SStack()
    print(st1.is_empty())
    st1.push(2)
    st1.push(4)
    print(st1.pop())
    st1.push(6)
    st1.push(8)
    print(st1.top())
    print(st1.is_empty())
    st1.travel()

 

日记不写博客吗?这里是问答频道