一个节点类(Node class)。您将使用链接(linked implementation)实现创建堆栈(Stack) ADT。实现是链接的节点。
问题相关代码,请勿粘贴截图
运行结果及报错内容
class Node:
def __init__(self, data, node=None):
# 初始化这个节点,插入数据,如果有则设置下一个节点
self.data = data
self.chain = node
class MyStack:
def init(self, data=None):
# 初始化这个栈,如果存在则存储数据
pass
self.length = 0
self.last = None
if data != None:
self.push(data)
def push(self, data):
# 将数据添加到栈的开头
newNode = Node(data)
if self.last != None:
newNode.prev = self.last
self.last = newNode
self.length = self.length + 1
pass
def pop(self):
# 移除栈首元素。
# 返回栈首元素中的数据,如果栈为空则返回None
if self.length == 0:
return None
data = self.last.data
self.last = self.last.prev
self.length = self.length - 1
return data
pass
def top(self):
# 返回开头元素中的数据,但不移除。
# 如果堆栈为空,则返回 None。
if self.length == 0:
return None
pass
def __len__(self):
# 返回栈中的元素个数
return self.length
pass
def sum_exists(n, p_list):
# 如果 n 可以从重复的 p_list 中形成,则返回 True
# 任意次数。
pass