📜  Python堆栈和队列

📅  最后修改于: 2020-10-28 01:20:14             🧑  作者: Mango

Python堆栈和队列

数据结构将计算机中的存储组织起来,以便我们可以轻松访问和更改数据。堆栈和队列是计算机科学中定义的最早的数据结构。一个简单的Python列表也可以充当队列和堆栈。队列遵循FIFO规则(先进先出),并在编程中用于排序。通常使用数组或链表来实现堆栈和队列。

堆栈

堆栈是遵循LIFO(后进先出)原理的数据结构。要实现堆栈,我们需要两个简单的操作:

  • push-将元素添加到堆栈顶部。
  • pop-从堆栈顶部删除一个元素。


操作方式:

  • 添加-它添加堆栈中的项目并增加堆栈大小。添加发生在堆栈的顶部。
  • 删除-它由两个条件组成,第一,如果堆栈中不存在任何元素,则在堆栈中发生下溢,第二,如果堆栈中包含某些元素,则将最上面的元素删除。它减少了堆栈大小。
  • 遍历-涉及访问堆栈中的每个元素。

特点:

  • 堆栈的插入顺序被保留。
  • 对于解析操作很有用。
  • 允许重复。

代码

# Code to demonstrate Implementation of 
# stack using list 
x = ["Python", "C", "Android"] 
x.push("Java") 
x.push("C++") 
print(x) 
print(x.pop()) 
print(x) 
print(x.pop()) 
print(x) 

输出:

['Python', 'C', 'Android', 'Java', 'C++']
C++
['Python', 'C', 'Android', 'Java']
Java
['Python', 'C', 'Android']

队列

队列遵循先进先出(FIFO)原则。它的两端都是敞开的,因此我们可以轻松地在背面添加元素,也可以从正面移除元素。

要实现队列,我们需要两个简单的操作:

  • 入队-将元素添加到队列的末尾。
  • 出队-从队列的开头删除元素。


队列中的操作

  • 加法-将元素添加到队列中,发生在后端,即队列的后面。
  • 删除-它包含两个条件-如果队列中不存在任何元素,则队列中发生下溢,或者如果堆栈中包含某些元素,则位于最前面的元素将被删除。
  • 遍历-涉及访问队列的每个元素。

特点

  • 保留队列的插入顺序。
  • 允许重复。
  • 对于解析CPU任务操作很有用。

注意:队列的实现有些不同。 “先进先出”之后是队列。时间在这里起着重要的作用。堆栈之所以快速,是因为我们从列表的末尾插入和弹出元素,而在队列中,插入和弹出是从列表的开头开始的,因此它变得很慢。造成时间差异的原因是列表的属性,该列表的属性在结束操作中速度较快,而在开始操作中速度较慢,因为所有其他元素都必须一一移位。

代码

import queue 
# Queue is created as an object 'L'
L = queue.Queue(maxsize=10) 

# Data is inserted in 'L' at the end using put() 
L.put(9) 
L.put(6) 
L.put(7) 
L.put(4) 
# get() takes data from 
# from the head  
# of the Queue 
print(L.get()) 
print(L.get()) 
print(L.get()) 
print(L.get()) 

输出:

9
6
7
4