美好的事可不可以发生在我身上? ------ 博客首页

栈在python中的实现

"""
栈是一种线性数据结构,用先进后出或者是后进先出的方式存储数据,栈中数据的插入删除操作都是在栈顶端进行,常见栈的函数操作包括

empty() – 返回栈是否为空 – Time Complexity : O(1)
size() – 返回栈的长度 – Time Complexity : O(1)
top() – 查看栈顶元素 – Time Complexity : O(1)
push(g) – 向栈顶添加元素 – Time Complexity : O(1)
pop() – 删除栈顶元素 – Time Complexity : O(1)
python中栈可以用以下三种方法实现:

1)list

2)collections.deque

3)queue.LifoQueue
"""

 1 # list:先进后出的栈
 2 stack = []
 3 # 假设stack右边是栈顶,左边是栈尾
 4 stack.append(1)
 5 print(stack)
 6 # [1]
 7 stack.append(2)
 8 print(stack)
 9 # [1, 2]
10 stack.append(3)
11 print(stack)
12 # [1, 2, 3]
13 # 开始删除栈顶数据
14 stack.pop()
15 print(stack)
16 # [1, 2]
17 stack.pop()
18 print(stack)
19 # [1]
20 stack.pop()
21 print(stack)
22 # []
from collections import deque
# 向栈顶添加元素
stack = deque()
stack.append(1)
print(stack)
# deque([1])
stack.append(2)
print(stack)
# deque([1, 2])
stack.append(3)
print(stack)
# deque([1, 2, 3])
# 栈尾删除元素
stack.popleft()
print(stack)
# deque([2, 3])
stack.popleft()
print(stack)
# deque([3])
stack.popleft()
print(stack)
# deque([])

 

# 利用queue汇总的LifoQueue实现
from queue import LifoQueue

stack = LifoQueue(maxsize=3)

stack.put(1)
print(stack.queue)
print(stack.qsize())
# [1]
# 1
stack.put(2)
print(stack.queue)
print(stack.qsize())
# [1, 2]
# 2
stack.put(3)
print(stack.queue)
print(stack.qsize())
# [1, 2, 3]
# 3

stack.get()
print(stack.queue)
print(stack.qsize())
# [1, 2]
# 2
stack.get()
print(stack.queue)
print(stack.qsize())
# [1]
# 1
stack.get()
print(stack.queue)
print(stack.qsize())
# []
# 0

 




posted @ 2022-01-06 21:41  Leshol  阅读(375)  评论(0)    收藏  举报
style="position: fixed; left: 0px; top: 0px; z-index: 2147483647; pointer-events: none;"> var a_idx = 0; jQuery(document).ready(function ($) {undefined $("body").click(function (e) {undefined var a = new Array( "❤富强❤", "❤民主❤", "❤和谐❤", "❤文明❤", "❤自由❤", "❤平等❤", "❤公正❤", "❤法治❤", "❤爱国❤", "❤敬业❤", "❤诚信❤", "❤友善❤", ); var $i = $("").text(a[a_idx]); a_idx = (a_idx + 1) % a.length; var x = e.pageX, y = e.pageY; $i.css({undefined "z-index": 999999999999999999999999999999999999999999999999999999999999999999999, "top": y - 20, "left": x, "position": "absolute", "font-weight": "bold", "color": "rgb(" + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + ")" }); $("body").append($i); $i.animate({undefined "top": y - 180, "opacity": 0 }, 1500, function () {undefined $i.remove(); }); }); }); (function ($) {undefined $.fn.snow = function (options) {undefined var $flake = $(' documentHeight = $(document).height(), documentWidth = $(document).width(), defaults = {undefined minSize: 10, maxSize: 20, newOn: 1000, flakeColor: "#AFDAEF" /* 此处可以定义雪花颜色,若要白色可以改为#FFFFFF */ }, options = $.extend({}, defaults, options); var interval = setInterval(function () {undefined var startPositionLeft = Math.random() * documentWidth - 100, startOpacity = 0.5 + Math.random(), sizeFlake = options.minSize + Math.random() * options.maxSize, endPositionTop = documentHeight - 200, endPositionLeft = startPositionLeft - 500 + Math.random() * 500, durationFall = documentHeight * 10 + Math.random() * 5000; $flake.clone().appendTo('body').css({undefined left: startPositionLeft, opacity: startOpacity, 'font-size': sizeFlake, color: options.flakeColor }).animate({undefined top: endPositionTop, left: endPositionLeft, opacity: 0.2 }, durationFall, 'linear', function () {undefined $(this).remove() }); }, options.newOn); }; })(jQuery); $(function () {undefined $.fn.snow({undefined minSize: 5, /* 定义雪花最小尺寸 */ maxSize: 50,/* 定义雪花最大尺寸 */ newOn: 300 /* 定义密集程度,数字越小越密集 */ }); });