本文概述
- 堆
- 队列
堆 栈是遵循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
推荐阅读
- Python高级(MySQL联接操作实现细节)
- Python OOPs概念介绍
- Python类和对象详细解析
- python|Python教程之粒子运动轨迹动态绘图
- python|YOLOv5添加注意力机制
- 算法技巧|python算法技巧——贪心算法练习及掌握
- python|python animation 轨迹_Python实例(自动轨迹绘制)
- 滑动轨迹|滑动轨迹 曲线 python_python曲线图
- [Algorithm] 94. Binary Tree Inorder Traversal iteratively approach