使用堆栈实现队列的 Python 程序
当需要使用栈来实现队列时,可以定义一个队列类,其中可以定义两个栈实例。可以对在此类中定义为方法的队列执行不同的操作。
以下是相同的演示-
示例
class Queue_structure:
def __init__(self):
self.in_val= Stack_structure()
self.out_val= Stack_structure()
def check_empty(self):
return (self.in_val.check_empty() and self.out_val.check_empty())
def enqueue_operation(self, data):
self.in_val.push_operation(data)
def dequeue_operation(self):
if self.out_val.check_empty():
while not self.in_val.check_empty():
deleted_val = self.in_val.pop_operation()
self.out_val.push_operation(deleted_val)
return self.out_val.pop_operation()
class Stack_structure:
def __init__(self):
self.items= []
def check_empty(self):
returnself.items== []
def push_operation(self, data):
self.items.append(data)
def pop_operation(self):
return self.items.pop()
my_instance = Queue_structure()
while True:
print('enqueue ')
print('dequeue')
print('quit')
my_input = input('What operation would you like to perform ?').split()
operation = my_input[0].strip().lower()
if operation == 'enqueue':
my_instance.enqueue_operation(int(my_input[1]))
elif operation == 'dequeue':
if my_instance.check_empty():
print('The queue is empty')
else:
deleted_elem = my_instance.dequeue_operation()
print('The deleted element is : ', int(deleted_elem))
elif operation == 'quit':
break 输出结果enqueuedequeue quit What operation would you like to perform ?enqueue 45 enqueue dequeue quit What operation would you like to perform ?enqueue 23 enqueue dequeue quit What operation would you like to perform ?enqueue 78 enqueue dequeue quit What operation would you like to perform ?dequeue The deleted element is : 45 enqueue dequeue quit What operation would you like to perform ?quit
解释
定义了一个“Queue_structure”,它定义了Stack的两个实例。
它有一个名为“check_empty”的方法,用于检查队列是否为空。
定义了另一个名为“enqueue_operation”的方法,它有助于将元素添加到队列中。
定义了另一个名为“dequeue_operation”的方法,它从队列中删除一个元素。
创建了另一个“Stack_structure”类。
它初始化一个空列表。
它有一个名为“check_empty”的方法,用于检查堆栈是否为空。
定义了另一个名为“push_operation”的方法,它有助于将元素添加到队列中。
定义了另一个名为“pop_operation”的方法,它从队列中删除一个元素。
'Queue_structure'实例被创建。
给出了三个选项——入队、出队和退出。
根据用户给出的选项执行操作,并在控制台上显示相关输出。
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志