MAXSIZE = 100
class SqStack:
# 初始化
def __init__(self):
self.elem = [None] * MAXSIZE
self.top, self.base = 0, 0
self.stack_size = MAXSIZE
# 入栈
def Push(self, e):
if self.top - self.base == self.stack_size:
raise Exception("栈空间已满")
self.elem[self.top] = e
self.top += 1
# 出栈
def pop(self):
if self.top == self.base:
raise Exception("栈已空")
self.top -= 1
return self.elem[self.top]
# 读栈找顶元素
def get_top(self):
if self.top != self.base:
return self.elem[self.top - 1]
else:
raise Exception("栈已空")
def stack_empty(self):
return self.top == self.base
def __len__(self):
return self.top - self.base
def __str__(self):
return str(self.elem[self.base:self.top])
if __name__ == "__main__":
s = SqStack()
s.Push(10)
s.Push(12)
s.Push(13)
print("元素入栈以后的栈为:", s)
print("栈的长度为", len(s))
print("栈顶元素为:", s.get_top())
入、出栈(Python版)
文章字数:698
阅读时间: 2 分钟
等 人表示很赞
评论