题目:自定义类实现栈,要求:初始化栈,清空栈,判断栈是否为空栈,获取栈的长度,获取栈顶元素,入栈,出栈,栈的遍历。
以链栈为例!!!!
具体代码:
# 链栈的实现
class Node(object):
def __init__(self, data=None, next_=None):
self.data = data
self.next_ = next_
class LinkStack(object):
# 初始化栈
def __init__(self):
self.top = None
# 清空栈
def clearStack(self):
self.top = None
print("栈已经清空")
# 判断栈是否为空
def isEmpty(self):
return self.top is None
# 求栈的大小
def length(self):
i = 0
p = self.top
while p is not None:
p = p.next_
i += 1
return i
# 求栈顶元素
def peek(self):
p = self.top
if p is not None:
return p.data
else:
print("空栈")
# 入栈
def push(self, data):
s = Node(data, self.top)
self.top = s
# 出栈
def pop(self):
if self.isEmpty():
return None
p = self.top