python数据结构-栈和队列的实现

1、栈(后进先出(last in first out,LIFO))

栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称为栈顶。栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构。

由于栈具有后入先出的特点,所以任何不在栈顶的元素都无法访问。为了得到栈底的元素,必须先拿掉上面的元素。

对栈的两种主要操作是将一个元素压入栈和将一个元素弹出栈。入栈使用push()方法,出栈使用pop()方法。

stack通常的操作:

1

2

3

4

5

6

Stack()    建立一个空的栈对象

push()     把一个元素添加到栈的最顶层

pop()      删除栈最顶层的元素,并返回这个元素

peek()     返回最顶层的元素,并不删除它

isEmpty()  判断栈是否为空

size()     返回栈中元素的个数

这里使用python的list对象模拟栈的实现:

class Stack:"""模拟栈"""def __init__(self):self.items = []def isEmpty(self):return len(self.items) == 0def push(self, item):self.items.append(item)def pop(self):return self.items.pop()def peek(self):if not self.isEmpty():return self.items[len(self.items) - 1]def size(self):return len(self.items)s = Stack()
print(s.isEmpty())s.push(11)
print(s.peek())
print(s.size())

 

2、队列:先进先出(First-In-First-Out,FIFO)

import queue
if __name__ == '__main__':A = queue.Queue()A.put(11)A.put(3)print(A.qsize())print(A.get())

参考:

 https://www.cnblogs.com/zhaoding/p/6491488.html

   https://www.jb51.net/article/140534.htm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273899.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c#只读字段和常量的区别,以及静态构造函数的使用 .

using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplication1{ /// <summary> /// 功能&#xff1a;c#只读字段和常量的区别&#xff0c;以及静态构造函数的使用 /// </summary> class Progra…

python中的json序列化

如果我们要在不同的编程语言之间传递对象&#xff0c;就必须把对象序列化为标准格式&#xff0c;比如XML&#xff0c;但更好的方法是序列化为JSON&#xff0c;因为JSON表示出来就是一个字符串&#xff0c;可以被所有语言读取&#xff0c;也可以方便地存储到磁盘或者通过网络传输…

android 中 四舍五入的method */

/* 四舍五入的method */private String format(double num) {NumberFormat formatter new DecimalFormat("0.00");String s formatter.format(num);return s;} 转载于:https://www.cnblogs.com/hao222/p/3485204.html

Jar 打包 EXE文件,可以脱离java环境运行 Jsmooth的使用

1、首先准备我们的资源&#xff0c;把要转换的Jar文件、精简过的JRE文件夹和想生成的EXE文件的图标&#xff08;可以是png&#xff0c;jpg等格式&#xff0c;不想加图标可以不弄&#xff09;放到同一个文件夹内。这一步一定要做&#xff0c;否则可以成功生成&#xff0c;但在没…

linux中的fork方法(python)

前言&#xff1a; Unix/Linux操作系统提供了一个fork()系统调用&#xff0c;它非常特殊。普通的函数调用&#xff0c;调用一次&#xff0c;返回一次&#xff0c;但是fork()调用一次&#xff0c;返回两次&#xff0c;因为操作系统自动把当前进程&#xff08;称为父进程&#xf…

PowerDesigner的文章

来自iteye的PowerDesigner的相关文章&#xff0c;写的不错&#xff0c;这里引用一下 PD12 建模工具的使用 博客分类&#xff1a; PowerDesigner.nethttp://jpkc.zjbti.net.cn/sjkjs/uploadfile/2007514153222522.swf2010-01-12 00:34 浏览 352 评论(0) 分类:数据库从PowerDesi…

并发(concurrency)和并行(parallellism)

并发&#xff08;concurrency&#xff09;和并行&#xff08;parallellism&#xff09;是&#xff1a; 解释一&#xff1a;并行是指两个或者多个事件在同一时刻发生&#xff1b;而并发是指两个或多个事件在同一时间间隔发生。

大公司开源共享

Google开源:https://developers.google.com/open-source/projectsFacebook开源:https://github.com/facebook阿里巴巴开源:https://github.com/alibabaIntel开源:https://01.org/http://software.intel.com/zh-cn/ossApple开源:http://www.apple.com/opensource/http://www.ope…

进程间通信(python)

Process之间肯定是需要通信的&#xff0c;操作系统提供了很多机制来实现进程间的通信。Python的multiprocessing模块包装了底层的机制&#xff0c;提供了Queue、Pipes等多种方式来交换数据。 一、我们以Queue为例&#xff0c;在父进程中创建两个子进程&#xff0c;一个往Queue…

80x86 CPU 的工作模式

8086/8088微处理器只有一种工作模式&#xff1a;实地址模式。 32为的80x86微处理器有3种工作模式&#xff1a;实地址模式、保护模式和虚拟8086模式。 实地址模式 对于8086/8088微处理器&#xff0c;实模式是它的唯一工作方式&#xff0c;对于80386以上的处理器来说&#xff0c;…

Python定时任务调度——APScheduler

参考&#xff1a; &#xff08;1&#xff09;https://www.cnblogs.com/luxiaojun/p/6567132.html &#xff08;2&#xff09;https://blog.csdn.net/u010376788/article/details/75726182

Ajax 模糊查询的简单实现

类似于百度的搜索引擎模糊查询功能&#xff0c;不过百度的模糊查询功能更强大&#xff0c;这里简单实现下. 要实现模糊查询&#xff0c;首先要做的就是把SQL写好。话不多少&#xff0c;直接贴代码了! JSP页面&#xff1a; <% page language"java" import"jav…

OpenStack组件

OpenStack的架构及组件&#xff08;Havana&#xff09; 服务项目名描述控制台Horizon用户通过该服务与OpenStack的各服务进行交互&#xff0c;如启动虚机实例、分配IP地址、设置访问控制等&#xff1b;计算Nova按需分派并管理虚机&#xff1b;网络Neutron通常是计算服务通过该服…

python 计算数字 k 在 0 到 n 中的出现的次数,k 可能是 0~9 的一个值

3. 统计数字 中文English 计算数字 k 在 0 到 n 中的出现的次数&#xff0c;k 可能是 0~9 的一个值。 Example 样例 1&#xff1a; 输入&#xff1a; k 1, n 1 输出&#xff1a; 1 解释&#xff1a; 在 [0, 1] 中&#xff0c;我们发现 1 出现了 1 次 (1)。样例 2&#x…

[转]Design Pattern Interview Questions - Part 2

Interpeter , Iterator , Mediator , Memento and Observer design patterns.(I) what is Interpreter pattern?(B) Can you explain iterator pattern?(A) Can you explain mediator pattern?(I) Can you explain memento pattern?(B) Can you explain observer pattern?…

python爬虫面试题

1 :列表生成式和生成器的区别 &#xff1f; 列表生成式直接生成一个列表&#xff0c;所有元素对象被立即创建在内存中&#xff0c;当元素过多时&#xff0c;势必会占用过多内存&#xff0c; 不可取&#xff0c;要用到生成器&#xff0c;它即时创建一个生成器对象&#xff0c;…

%hd %d %ld %u ......

%d 有符号10进制整数 %ld 长整型 %hd短整型%md,m指定的是输出字段的宽度&#xff0c;默认左补空格, 如果数据的位数小于m&#xff0c;则左端补以空格&#xff0c;若大于m&#xff0c;则  按实际位数输出&#xff0c;如&#xff1a;  printf("%4d,%4d",a,b)  若…

我的扑克牌

main.m文件&#xff1a; #import <Foundation/Foundation.h> #import "hearts.h" #import "spade.h" #import "wintersweet.h" #import "diamonds.h" #import "stdio.h" #import "string.h" int main(int a…

在使用selenium,Chrome无界面浏览模式与自定义插件加载问题

Chrome启用无界面浏览模式时&#xff0c;自定义插件是没法加载的&#xff0c;会报以下错误&#xff1a; selenium.common.exceptions.WebDriverException: Message: unknown error: failed to wait for extension background page to load: chrome-extension://cdkhikphdegmcl…

一遍学习,一遍进步

做挨踢这块也快两年了&#xff0c;还是个小白。懂得技术有限&#xff0c;会的东西不多。知道的东西越多越觉得该知道更多东西。新的知识技术更新越来越快。有点应接不暇。 2013很糊涂的过来了。没有看几本书&#xff0c;没有自我提高&#xff0c;有点浑浑噩噩的感觉。单位的工作…