我正在遵循tutorial(使用Python编程中的链表实现队列)来创建链表队列,并且我发现当我尝试运行代码时,我得到了一个名称错误错误,指出没有定义入队函数。
# queue is empty at beginning
queue = {'front': None, 'back': None}
# we will use a node to keep track of the elements
# in the queue which is represented by a linked list
class node:
def __init__(self, data, next):
self.data = data
self.next = next
# add elements to queue in 0(1) time
def enqueue(queue, element):
N = node(element, None)
if queue['back'] == None:
queue['front'] = N
queue['back'] = N
else:
queue['back'].next = N
queue['back'] = queue['back'].next
# remove first element from queue in 0(1) time
def dequeue(queue):
if queue['front'] != None:
first = queue['front']
queue['front'] = queue['front'].next
return first.data
else:
if queue['back'] != None:
queue['back'] = None
return 'Cannot dequeue because queue isempty'
enqueue(queue, 'a')
enqueue(queue, 'b')
enqueue(queue, 'c')
print (dequeue(queue))
发布于 2018-12-10 21:22:39
您的缩进错误。现在,enqueue(queue, element)
是class node
的一个类方法。
试着把它移到左边:
class node:
def __init__(self, data, next):
self.data = data
self.next = next
# add elements to queue in 0(1) time
def enqueue(queue, element):
N = node(element, None)
if queue['back'] == None:
queue['front'] = N
queue['back'] = N
else:
queue['back'].next = N
queue['back'] = queue['back'].next
https://stackoverflow.com/questions/53706277
复制相似问题