Python程序实现使用一个队列的堆栈

Python程序实现使用一个队列的堆栈

当需要使用单个队列实现堆栈时,需要 Stack_structure 类和 Queue_structure 类。在这些类中分别定义了添加和删除堆栈和队列元素的方法。

以下是演示示例 –

例子

class Stack_structure:
  def __init__(self):
    self.q = Queue_structure()

  def check_empty(self):
    return self.q.check_empty()

  def push_val(self, data):
    self.q.enqueue_operation(data)

  def pop_val(self):
    for _ in range(self.q.size_calculate() - 1):
      dequeued = self.q.dequeue_operation()
      self.q.enqueue_operation(dequeued)
    return self.q.dequeue_operation()

class Queue_structure:
  def __init__(self):
    self.items = []
    self.size = 0

  def check_empty(self):
    return self.items == []

  def enqueue_operation(self, data):
    self.size += 1
    self.items.append(data)

  def dequeue_operation(self):
    self.size -= 1
    return self.items.pop(0)

  def size_calculate(self):
    return self.size

my_instance = Stack_structure()

print('Menu')
print('push <value>')
print('pop')
print('quit')

while True:
  my_input = input('What operation would you like to perform ? ').split()

  operation = my_input[0].strip().lower()
  if operation == 'push':
    my_instance.push_val(int(my_input[1]))
  elif operation == 'pop':
    if my_instance.check_empty():
      print('栈为空。')
    else:
      print('删除的值为:', my_instance.pop_val())
  elif operation == 'quit':
    break

输出

菜单
push <value>
pop
quit
你想执行什么操作?
push 89
你想执行什么操作?
push 43
你想执行什么操作?
push 76
你想执行什么操作?
push 56
你想执行什么操作?
pop
删除的值为: 56
你想执行什么操作?
quit

说明

  • 创建了一个 Stack_structure 类,初始化为空列表。

  • 定义了一个名为 check_empty 的方法,用于查看堆栈是否为空。

  • 定义了另一个名为 push_val 的方法,用于向堆栈中添加元素。

  • 定义了另一个名为 pop_val 的方法,用于从堆栈中删除元素。

  • 创建了一个 Queue_structure 类,初始化为空列表,并将列表大小分配为 0。

  • 定义了一个名为 check_empty 的方法,用于查看队列是否为空。

  • 定义了另一个名为 enqueue_operation 的方法,用于向队列中添加元素。

  • 定义了另一个名为 dequeue_operation 的方法,用于从队列中删除元素。

  • 定义了另一个名为 size_calculate 的方法,用于确定队列的大小。

  • 定义了此 Stack_structure 的实例。

  • 给出了四个选项 – 菜单、push、pop 和 quit。

  • 根据用户输入的操作,对堆栈元素执行操作。

  • 在控制台上输出了结果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程