飘逸的python - 实现一个极简的优先队列

一个队列至少满足2个方法,put和get.

借助最小堆来实现.

这里按"值越大优先级越高"的顺序.

#coding=utf-8
from heapq import heappush, heappop
class PriorityQueue:
    def __init__(self):
        self._queue = []

    def put(self, item, priority):
        heappush(self._queue, (-priority, item))

    def get(self):
        return heappop(self._queue)[-1]

q = PriorityQueue()
q.put('world', 1)
q.put('hello', 2)
print q.get()
print q.get()
时间: 2024-10-18 22:50:10

飘逸的python - 实现一个极简的优先队列的相关文章

python实现之极简stack和quene

用python实现一个极简的stack和quene,那是简单不过的事情了,简洁易懂,适合小白~ 直接上代码吧: node: class Node: def __init__( self, val ): self.val = val self.next = None stack: class Stack: def __init__( self ): self.top = None def peek( self ): return self.top def pop( self ): if not s

"iOS push全方位解析(三)【译文】"——一个极简的demo,并测试一下push

这是一篇来自raywenderlich的教程,内容翔实!结构简单透彻.讲解循序渐进.文章质量上乘!是一篇难的的博文!使用半瓶的英语水平翻译了一下: 1. push的概述 2. 生成push证书,生成Provisioning Profile 3. 一个极简的demo,并测试一下push.(本博文) 这里查看原文 一个极简的demo 到目前为止,上面还不是做的还不够让人兴奋,但是那些准备工作还是很有必要的.本教程像你详细展示了如何生成证书,因为每天都会用到证书,而且没有证书push就不好.刚才你刚搞

【转】手摸手,带你用vue撸后台 系列四(vueAdmin 一个极简的后台基础模板)

前言 做这个 vueAdmin-template 的主要原因是: vue-element-admin 这个项目的初衷是一个vue的管理后台集成方案,把平时用到的一些组件或者经验分享给大家,同时它也在不断的维护和拓展中,比如最近重构了dashboard,加入了全屏功能,新增了tabs-view等等.所以项目会越来越复杂,不太适合很多初用vue的同学来构建后台.所以就写了这个基础模板,它没有复杂的功能,只包含了一个后台需要最基础的东西.vueAdmin-template 主要是基于vue-cli w

飘逸的python - 一个极简的event系统

event系统的核心至少满足: 1.存放事件的容器,可对事件添加删除 2.事件的触发fire 上代码. class Event(list): def __call__(self, *args, **kwargs): for f in self: f(*args, **kwargs) def f(arg): print 'execute with arg',arg e = Event() e.append(f) e('kzc')#触发事件 e.remove(f)

飘逸的python - 实现一个pretty函数美丽的输出嵌套字典

演示样例: d = { "root": { "folder2": { "item2": None, "item1": None }, "folder1": { "subfolder1": { "item2": None, "item1": None }, "subfolder2": { "item3": No

一个极简的守护进程Bash脚本

由于最近写的Node.js程序因为一些Bug,会出现一些自动退出的问题,所以需要在它退出的时候及时发现,并重新启动 于是查阅了些资料,写了一个Bash的程序,功能十分简单,就是每隔3s判断一次处在6000端口的node程序是否正在运行,如果没有发现6000端口,那么执行启动程序的命令,已经使用了一段时间,感觉效果蛮好的,简单小巧,安全可靠,记录一下,以便以后使用. #!/bin/bash BASEDIR='/server' while true; do PRO_NOW=`netstat -tun

一个极简游戏创意

一个极简的爬虫

出于学习的目的,然后就写了这个 下载地址 https://gitee.com/youlicc/a_simple_reptile 下图,效果就是这样... 总结分析 CreateRequest.cs这个类是我自己写的. 这个基础类是在github上找的,地址我忘了.使用理由:这份代码搭建了基类模型.(我在学习设计模式,也在尝试,但是总感觉写出来的东西很别扭.七不像,所以倒不如先学习别人的写法,努力提高代码质量.) 然后我在简单包装了下 最后出炉... 学习并深化使用异步,学习傻瓜是封装 原文地址:

我的第一个 Rails 网站:极简优雅的笔记工具-Raysnote

出于公司开发需求,这个暑假我开始搞Ruby on Rails,在业余时间捣鼓了一个在线笔记应用:http://raysnote.com.这是一个极简而优雅的笔记网站(至少我个人这么认为的).笔记支持所见即所得的编辑器.markdown语法,时时预览,代码高亮.表格.数学公式等.除此之外,还具有保存网络文章的功能(类似read it later).对于一个对于书写和阅读有强迫症的人来说,我在Raysnote的中文排版设计,易用性设计上花了很大的功夫,使得Raysnote具有简洁优雅的风格,阅读体验