python3实现栈的逻辑详解编程语言

python的队列中本身有很多方法

大家可以看下我的这篇博客,对python的队列的常用方法有简单的介绍

https://www.cnblogs.com/bainianminguo/p/7420685.html

 python队列已经实现了先入后出的栈的方法

在这里,我们可以自己实现栈的方法

import queue 
 
 
class Stack(object): 
    def __init__(self): 
 
        self.master_queue = queue.Queue() 
        self.standby_queue = queue.Queue() 
 
 
    def queue_put(self,value): 
        self.master_queue.put(value) 
 
 
    def queue_get(self): 
        while True: 
            if self.master_queue.qsize() == 1: 
                data = self.master_queue.get(timeout=1) 
                break 
            else: 
                self.standby_queue.put(self.master_queue.get(timeout=1)) 
 
 
        # 这里为什么有这样一行代码? 
        # 因为每次执行queue.get方法,都会导致master_queue队列中的数据为空,因为master_queue队列中的所有的数据都被取出来了 
        # 而standby_queue中的数据就是最初始的时候master_queue队列中的数据,但是不包括最后一个数据,因为最后一个数据我们没有 
        # put到standby_queue队列中,所以我们这里做队列变量的互换 
 
        self.master_queue,self.standby_queue = self.standby_queue,self.master_queue 
        return data 
 
 
 
obj = Stack() 
 
obj.queue_put("test1") 
obj.queue_put("test2") 
obj.queue_put("test3") 
 
print(obj.queue_get()) 
print(obj.queue_get()) 
print(obj.queue_get()) 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/20758.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论