题目
进行队列类的设计并实现, 包括以下功能:
- 实现清空队列的操作
- 实现判断队列是否为空的操作
- 实现求队列长度的操作
- 实现返回队首元素的操作
- 实现入队的操作
- 实现出队的操作
- 实现队列遍历操作
- 在图形类上编写一个测试该类的程序
队列类如下
class Queue(object):
"""先进先出队列"""
def __init__(self):
self.items = []
def is_empty(self):
"""判断队列是否为空"""
return self.items == []
def del_queue(self):
"""清空队列"""
self.items = []
def en_queue(self, item):
"""进队列"""
self.items.insert(0, item)
def de_queue(self):
"""出队列"""
if len(self.items) == 0:
return False
else:
return self.items.pop()
def get_first(self):
"""返回队首元素"""
if len(self.items) == 0:
return False
else:
return self.items[-1]
def size_queue(self):
"""求队列长度"""
return len(self.items)
def travel_queue(self):
# 判断是否为空,如果为空,则返回特定值
s = ""
if len(self.items) == 0:
return False
else:
for i in self.items:
s += i
s += " "
return s
窗口需要的相应函数如下:
def en_queue():
a = inp1.get()
if a:
queue.en_queue(a)
txt.insert(END, " 成功在队列插入 " + a)
else:
txt.insert(END, " 未输入内容 " + a)
inp1.delete(0, END) # 清空输入
def de_queue():
b = queue.de_queue()
if b:
txt.insert(END, " 成功出队 " + b)
else:
txt.insert(END, " 出队失败 队列为空 ")
def del_queue():
txt.insert(END, " 队列成功清空 ")
queue.del_queue()
def travel_queue():
s = queue.travel_queue()
if s:
txt.insert(END, " 队列内容如下: " + s)
else:
txt.insert(END, " 遍历失败 队列为空 ")
def len_queue():
s = queue.size_queue()
txt.insert(END, " 队列长度: " + str(s))
def first_queue():
s = queue.get_first()
if s:
txt.insert(END, " 队首元素为: " + s)
else:
txt.insert(END, " 队列为空 ")
测试截图如下: