[英]How to Print elements in a queue(Python)
我在python中有以下代码。 在LinkedQueue类内部,我创建了一个显示方法,该方法可以打印队列中的所有元素。
class LinkedQueue :
class _Node :
def __init__(self, element, next):
self._element = element
self._next = next
def get_elements(self):
return self._element
def set_elements(self, num):
self._element = num
def __init__(self) :
self._head = None
self._tail = None
self._size = 0
def display(self):
tmp = self._head
while tmp != None :
print(tmp.get_elements())
tmp = tmp._next
def __len__(self) :
return self._size
def is_empty(self) :
return self._size == 0
def first(self) :
if self.is_empty() :
raise Empty('Queue is empty')
return self._head._element
def dequeue(self) :
if self.is_empty():
raise Empty('Queue is empty')
answer = self._head._element
self._head = self._head._next
self._size -= 1
if self.is_empty() :
self._tail = None
return answer
def enqueue(self, e) :
newest = self._Node(e,None)
if self.is_empty() :
self._head = newest
else :
self._tail._next = newest
self._tail = newest
self._size += 1
class Empty(Exception) :
pass
我还在类之外创建了一个菜单功能,该功能允许用户从两个选项中进行选择:将数字添加到队列中或退出菜单。 按下“ n”允许用户将数字添加到队列中。 按下“ q”允许用户退出菜单。 用户按下退出键后,将按照输入顺序打印输入的数字。 我在打印数字时遇到麻烦,不确定如何解决。
def menu():
queue = LinkedQueue()
while True:
print('n - to add a number')
print('q - to quit')
selection = input('Enter your selection: ')
if selection == 'n':
number = int(input("Enter a number: "))
queue.enqueue(number)
elif selection == 'q':
break
for item in queue.display():
n = item
counter = 0
for i in range(len(queue)):
counter += 1
print('Entry # ', counter, '=', n)
尝试这个:
class LinkedQueue :
class _Node :
def __init__(self, element, next):
self._element = element
self._next = next
def get_elements(self):
return self._element
def set_elements(self, num):
self._element = num
def __init__(self) :
self._head = None
self._tail = None
self._size = 0
def display(self):
tmp = self._head
counter = 1
while tmp != None :
#print(tmp.get_elements())
print('Entry # ', counter, '=', tmp.get_elements())
tmp = tmp._next
counter+=1
def __len__(self) :
return self._size
def is_empty(self) :
return self._size == 0
def first(self) :
if self.is_empty() :
raise Empty('Queue is empty')
return self._head._element
def dequeue(self) :
if self.is_empty():
raise Empty('Queue is empty')
answer = self._head._element
self._head = self._head._next
self._size -= 1
if self.is_empty() :
self._tail = None
return answer
def enqueue(self, e) :
newest = self._Node(e,None)
if self.is_empty() :
self._head = newest
else :
self._tail._next = newest
self._tail = newest
self._size += 1
class Empty(Exception) :
pass
def menu():
queue = LinkedQueue()
while True:
print('n - to add a number')
print('q - to quit')
selection = input('Enter your selection: ')
if selection == 'n':
number = int(input("Enter a number: "))
queue.enqueue(number)
elif selection == 'q':
queue.display()
break
'''
for item in queue.display():
n = item
counter = 0
for i in range(len(q)):
counter += 1
print('Entry # ', counter, '=', n)
'''
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.