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 self.top:
            return None
        else:
            old_top = Node( self.top.val )
            self.top = self.top.next
            return old_top

    def push( self, val ):
        node = Node( val )
        node.next = self.top
        self.top = node

quene:

class Quene:
    def __init__( self ):
        self.first = None
        self.last = None

    def dequene( self ):
        if not self.first:
            return None
        else:
            node = Node( self.first.val )
            self.first = self.first.next
            return node

    def enquene( self, val ):
        if not self.last:
            node = Node( val )
            self.first = node
            self.last = node
        else:
            node = Node( val )
            self.last.next = node
            self.last = node

test case:

‘‘‘
test case
‘‘‘
s = Stack()
s.push( 1 )
s.push( 0 )
s.push( -1 )
s.push( -1 )
s.push( 6 )
print( s.peek().val )

s.pop()
print( s.peek().val )

s.pop()
s.pop()
s.pop()
print( s.peek().val )

s.pop()
print( s.top )

‘‘‘
Quene test case
‘‘‘
q = Quene()
q.enquene( 1 )
q.enquene( 2 )
q.enquene( 0 )
q.enquene( -1 )
q.enquene( 8 )
q.dequene()
print( q.first.val )
时间: 2024-10-08 04:13:02

python实现之极简stack和quene的相关文章

飘逸的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):

反向传播神经网络极简入门

反向传播神经网络极简入门 我一直在找一份简明的神经网络入门,然而在中文圈里并没有找到.直到我看到了这份162行的Python实现,以及对应的油管视频之后,我才觉得这就是我需要的极简入门资料.这份极简入门笔记不需要突触的图片做装饰,也不需要赘述神经网络的发展历史:要推导有推导,要代码有代码,关键是,它们还对得上.对于欠缺的背景知识,利用斯坦福大学的神经网络wiki进行了补全. 单个神经元 神经网络是多个“神经元”(感知机)的带权级联,神经网络算法可以提供非线性的复杂模型,它有两个参数:权值矩阵{W

极简主义(Minimalist)Web 框架大汇总

极简主义(Minimalist)Web 框架大汇总 罗列了一系列极简主义的框架(简单.轻量级),按编程语言分好类,按字母顺序排序. 列表 CSS 框架 C 写的 Web 框架 PHP 写的 数据库 框架 前端 JS 的框架 Go 写的 Web 框架 Haskell 写的 Web 框架 Java 写的 Web 框架 JavaScript 写的 Web 框架 Lua 写的 Web 框架 Node.js 写的 Web 框架 Perl 写的 Web 框架 PHP 写的 Web 框架 Python 写的

Beetl的极简之道

跟一个同为国内流行开源软件的开发者聊天,他说beetl功能太全,代码太多.他希望的模板与语言应该简单,然后发给我一个只提供几个指令的模板引擎的链接.后来,我详细介绍beetl让他明白了Beetl的简约之处,同时我也认识到,并不是所有开发者一眼能开出beetl的核心价值:简单.本文将详细介绍Beetl的极简之道. 极简之一:简单定界符号 :Beetl支持自定义定界符号,有人为了减少对原有模板侵入性,采用了冗长的<!--: -->,也有人采用了传统的<%%>,对于Beetl来说,仍然可

[深度学习工具]&#183;极简安装Dlib人脸识别库

[深度学习工具]·极简安装Dlib人脸识别库 Dlib介绍 Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具.它广泛应用于工业界和学术界,包括机器人,嵌入式设备,移动电话和大型高性能计算环境.Dlib的开源许可证 允许您在任何应用程序中免费使用它.Dlib有很长的时间,包含很多模块,近几年作者主要关注在机器学习.深度学习.图像处理等模块的开发. 安装 此博文针对Windows10安装,其他平台可以仿照这个步骤来安装 安装Minicond

在windows上极简安装GPU版AI框架(Tensorflow、Pytorch)

在windows上极简安装GPU版AI框架 如果我们想在windows系统上安装GPU版本的AI框架,比如GPU版本的tesnorflow,通常我们会看到类似下面的安装教程 官方版本 安装CUDA 安装cuDNN 配置环境变量 安装python环境 安装gpu版的tensorflow开发包 咋看上去好像不是很复杂,但是其中坑多到你怀疑人生. 下载的cuDNN时候需要注册,而且因为cuDNN文件在外网,下载速度很慢. 比如不同版本的tensorflow和CUDA(cuDNN)的版本是有匹配关系的,

在windows上极简安装GPU版AI框架

在windows上极简安装GPU版AI框架 如果我们想在windows系统上安装GPU版本的AI框架,比如GPU版本的tesnorflow,通常我们会看到类似下面的安装教程 官方版本 安装CUDA 安装cuDNN 配置环境变量 安装python环境 安装gpu版的tensorflow开发包 咋看上去好像不是很复杂,但是其中坑多到你怀疑人生. 下载的cuDNN时候需要注册,而且因为cuDNN文件在外网,下载速度很慢. 比如不同版本的tensorflow和CUDA(cuDNN)的版本是有匹配关系的,

Flask入门小项目 - 搭建极简博客(7)

目录: Flask入门小项目 - 搭建极简博客(1)介绍与项目结构 Flask入门小项目 - 搭建极简博客(2)添加主页 Flask入门小项目 - 搭建极简博客(3)添加登录.登出功能 Flask入门小项目 - 搭建极简博客(4)添加注册功能 Flask入门小项目 - 搭建极简博客(5)添加写文章功能 Flask入门小项目 - 搭建极简博客(6)添加删除文章功能 Flask入门小项目 - 搭建极简博客(7)部署到服务器,实现外网访问 完整程序点这 零.效果 域名的话要等它备案完才能访问... 一

CentOS下使用Postfix + Dovecot + Dnsmasq搭建极简局域网邮件系统

背景 开发环境为局域网,工作内容需要经常查看邮件文件(*.eml),可恶的Foxmail必须验证账户才能进入主界面,才能打开eml文件查看. 无奈搭一个局域网内的邮件系统吧.极简搭建,仅用于通过Foxmail验证. 环境 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 安装 下载服务器软件: SMTP服务器postfix POP/IMAP服务器dovecot DNS服务器dns