队列和栈

一张图可以简单的说明
栈
为了达到时间复杂度最低:选择的是python列表实现栈,而列表是顺序表
入栈push的时候选择在列表的尾部进行添加元素,出栈在列表尾部弹出

class Stack(object):"""栈"""def __init__(self):self.items = []def is_empty(self):"""判断是否为空"""return self.items == []def push(self, item):"""加入元素"""self.items.append(item)def pop(self):"""弹出元素"""return self.items.pop()def peek(self):"""返回栈顶元素"""return self.items[len(self.items)-1]def size(self):"""返回栈的大小"""return len(self.items)if __name__ == "__main__":stack = Stack()stack.push("hello")stack.push("world")stack.push("itcast")print stack.size()print stack.peek()print stack.pop()print stack.pop()print stack.pop()

队列

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表(顺序表,链表均可)。
队列
为了达到时间复杂度最低:选择的是python列表实现栈,而列表是顺序表

如果选择在头部进行添加是O(n),尾部进行弹出是O(1) ---->实际情况:对队列进行弹出比较多

如果选择在尾部进行添加时O(1),头部进行弹出是O(n) —>实际情况:对队列进行添加比较多

class Queue(object):"""队列"""def __init__(self):self.items = []def is_empty(self):return self.items == []def enqueue(self, item):"""进队列"""self.items.insert(0,item)def dequeue(self):"""出队列"""return self.items.pop()def size(self):"""返回大小"""return len(self.items)if __name__ == "__main__":q = Queue()q.enqueue("hello")q.enqueue("world")q.enqueue("itcast")print q.size()print q.dequeue()print q.dequeue()print q.dequeue()

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

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

相关文章

CoreAnimation编程指南(四)图层树结构

图层不但给自己提供可视化的内容和管理动画,而且充当了其他图层的容器类,构建图层层次结构。 本章介绍了图层层次结构,以及如何操纵该图层层次结构。一、什么是图层树的层次结构1.图层树是核心动画里面类似Cocoa视图的层次结构。比如一个NSVi…

学习散列表

回顾一下简单查找和二分查找 杂货店商品对应的价格举例: 简单查找就是拿出商品价目本,这个价目本并不是有序的,顾客问苹果多少钱,需要一个一个去查找某一个商品的价格,需要O(n)时间。 同样是一个价目本,但…

CoreAnimation编程指南(五)图层内容

当我们使用Cocoa的视图的时候,我们必须继承NSView或者UIView并且重载函数drawRect:来显示任何内容。但是CALayer实例可以直接使用,而无需继承子类。因为CALayer是一个键-值编码兼容的容器类,你可以在实例里面存储任意值,所以子类实…

SHA算法

回顾散列算法 我的上篇文章:学习散列表 在上篇文章杂货铺的示例中,我们希望散列函数的结果是均匀分布的。散列函数接受一个字符串,并返回一 个索引号。 安全散列算法(secure hash algorithm, SHA)函数 给…

CoreAnimation编程指南(六)动画

动画是当今用户界面的关键因素。当使用核心动画的时候,动画是自动完成的。没有动画的循环和计数器。你的应用程序不负负责重绘,也不负责跟踪动画的当前状态。动画在独立线程里面自动执行,没有和你的应用程序交互。本章提供了对动画类的概览&a…

CoreAnimation编程指南(七)图层Action

图层的行为在以下情况发生的时候被触发:从图层树里面插入或者删除一个图层,图层的属性值被修改了,或者程序显式要求。通常情况下,行为触发器是动画显示的结果所在。1.1 行为对象的角色一个行为对象是一个通过CAAction协议响应行为…

python实现搜索之二分查找

搜索 搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找 二分法查找 二分查找又称折半查找,优点是比较次数少&#x…

CoreAnimation编程指南(八)事务

图层的每个改变都是事务的一部分。CATransaction是核心动画类,它负责成批的把多个图层树的修改作为一个原子更新到渲染树。本章介绍了核心动画支持的两种事务。隐式事务和显式事务。1.1 隐式事务当图层树被没有获得事务的线程修改的时候将会自动创建隐式事务&#x…

写SQL语句需要注意的点

先回忆一下DDL和DML 创建表DDL create table t_xx(id int auto_increment primary key, name char(10),...) create table t_student( id int auto_increment primary key , name char(10), 外键id int, foreign key(外键id) references 外表t_class(外表id字段名) );插入数…

CoreAnimation编程指南(九)图层布局

NSView提供了经典的“stuts and springs”模式,用于视图调整大小的时候把关联到它父图层的视图重新调整位置。图层支持该模式,而且Mac OS X上面的核心动画提供了一个更通用的布局管理器机制,允许开发者自己写他们自己的布局管理器。可以为图层…

数据库优化、数据库基础等常用知识点总结

建表优化 1)数据库范式 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。 如电话列可进行拆分—家庭电话、公司电话第二范式(2NF):首先是 1NF,另外包含两…

CoreAnimation编程指南(十)KVC

CAAnimation和CALayer类扩展了NSKeyValueCoding协议,给键添加默认值,扩展了封装协议,支持CGPoint、CGRect、CGSize和CATransform3D关键路径。1.1 键-值编码兼容的容器类CALayer和CAAnimation都是键-值编码兼容的容器类,允许你修改…

CoreImage使用介绍

一、概述CoreImage.framework从iOS5开始启用,它使我们很容易就能处理图片的各种效果,色彩,曝光,饱和度,变形等等。不仅功能强大,而且可以直接使用GPU,效率很高,甚至可以实时的对视频…

一片文章概括大部分python面试基础常考题(部分有详解)

本片文章部分参考地址:https://segmentfault.com/a/1190000018737045 python是动态解释性的强类型定义语言 强类型:不允许不同类型相加。例如:整形字符串会报类型错误。 动态:不使用显示数据类型声明,且确定一个变量…

AssetsLibrary使用介绍

一、概述AssetsLibrary框架:从iOS4.0开始提供,可以通过它获取设备里的图片和视频等资料,以API的方式提供,而且界面式的,比UIImagePickerViewController灵活很多。既可以读又可以写。二、读取资料库中的全部资料1.大概步…

Objective-C成员变量声明方式探究

一、interface和 property 方式声明变量的区别1.你可以单独在interface中定义变量,而不用property定义;也可以只用property去定义,而不在interface中定义,当然用了property去定义,一般要在.m文件中用synthsize去合成相…

web处理高并发措施

高并发处理的思路,从几个方面进行解决 先来了解几个名词 QPS: 每秒处理的请求数量! 响应时间: 处理一个请求需要的时间! 吞吐量: 单位时间内的处理请求数量! 最大并发数: 同一时间能支持的最大请求数! 1、流量处…

经典逻辑编程题(本文用python实现)

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思…

@interface使用详解

1.interface可以实现三种功能&#xff1a;(1)声明类:Class(2)声明类别:Category(3)声明扩展:Extension2.声明类&#xff1a;这个就比较常用了&#xff0c;在这里不多说。代码&#xff1a;interface SomeClass : NSObject <SomeDelegate>{}end3.声明类别&#xff1a;(1)类…

同一账号多处登录问题

思路 用户每次登录时生存一个随机字符串保存在服务器和客户端&#xff0c;用户每次访问验证这个字符串&#xff0c;不通过时则要求用户下线&#xff0c; 如果有两个用户先后分别登录同一个帐号&#xff0c;则后登录的那位产生的字符串必然会覆盖先登录的那位&#xff0c; 然后…