python实现堆栈和队列

2023-11-05

1.python实现堆栈,可先将Stack类写入文件stack.py,在其它程序文件中使用from stack import Stack,然后就可以使用堆栈了。stack.py的程序如下:

class Stack():
	def __init__(self,size):
		self.size=size;
		self.stack=[];
		self.top=-1;
	def push(self,ele):        #入栈之前检查栈是否已满
		if self.isfull():
			raise exception("out of range");
		else:
			self.stack.append(ele);
			self.top=self.top+1;
	def pop(self):             # 出栈之前检查栈是否为空
		if self.isempty():
			raise exception("stack is empty");
		else:
			self.top=self.top-1;
			return self.stack.pop();
	
	def isfull(self):
		return self.top+1==self.size;
	def isempty(self):
		return self.top==-1;
		


再写一个程序文件,stacktest.py,使用栈,内容如下:

#!/usr/bin/python 
from stack import Stack
s=Stack(20);
for i in range(3):
	s.push(i);
s.pop()
print s.isempty();

2.python 实现队列:

class Queue():
	def __init__(self,size):
		self.size=size;
		self.front=-1;
		self.rear=-1;
		self.queue=[];
	def enqueue(self,ele):  #入队操作
		if self.isfull():
			raise exception("queue is full");
		else:
			self.queue.append(ele);
			self.rear=self.rear+1;
	def dequeue(self):      #出队操作
		if self.isempty():
			raise exception("queue is empty");
		else:
			self.front=self.front+1;
			return self.queue[self.front];
	def isfull(self):
		return self.rear-self.front+1==self.size;
	def isempty(self):
		return self.front==self.rear;
	
q=Queue(10);
for i in range(3):
	q.enqueue(i);
print q.dequeue();
print q.isempty();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python实现堆栈和队列 的相关文章

随机推荐

  • 微服务中使用Sentinel实现服务容错

    在微服务架构中 我们将业务拆分成一个个的服务 服务与服务之间可以相互调用 但是由于网络原因或者自身的原因 服务并不能保证服务的100 可用 如果单个服务出现问题 调用这个服务就会出现网络延迟 此时若有大量的网络涌入 会形成任务堆积 最终导致
  • 快速入门(完整):Python练手经典实例100个 (让你的Python技能点全亮)

    Python练手经典实例100个 一 Python 基础 62 例 1 十转二 2 十转八 3 十转十六 4 字符串转字节 5 转为字符串 6 十转ASCII 7 ASCII转十 8 转为字典 9 转为浮点类型 10 转为整型 11 转为集
  • [转]修改python默认的编码方式

    今天碰到了 python 编码问题 报错信息如下Traceback most recent call last File ntpath pyc line 108 in joinUnicodeDecodeError ascii codec c
  • L6200E: Symbol **** multiply defined

    这个错误是链接器 Linker 报告的错误 指示在链接过程中出现了符号 SystemInit 的多重定义 具体来说 符号 SystemInit 被两个目标文件 system stm32f0xx 1 o和system stm32f0xx o
  • 图解RAM结构与原理,系统内存的Channel、Chip与Bank

    文章目录 转载正文 标题挥发性内存分2种 SRAM和DRAM 主内存子系统 channel 和 DIMM rank 和 chip bank row column 内存的读写方式 越多越好 加速读写能力 本文转载来自 图解RAM结构与原理 系
  • 利用mybatis框架的解析器实现文本动态参数

    问题 脚本模板完成后 有些不同的主机执行同一个脚本模板时需要的参数不一样 那么在不同的主机上执行同个脚本时怎么动态将参数赋值给待执行的脚本 而不用直接修改脚本内容 解决方案 Mybatis框架本身的解析器GenericTokenParser
  • Springboot整合Zipkin+kafka+ELK,实现链路追踪和日志收集

    背景 随着项目的深入 久不久可能出现些问题 但是查询起来又极其麻烦 线上有三台服务器 不知道报错日志在那台上 很麻烦 所以领导要求把项目的链路追踪和日志给统一输出到elk中 可以实现在elk查询 Zipkin Sleuth链路追踪 先来实现
  • 宠物行业如何进行软文营销

    如今 宠物已经成为了人们生活中不可或缺的一部分 大众对于萌宠的喜爱与日俱增 随着 萌宠经济 升温 越来越多的商机开始出现 伴随着宠物市场竞争的日益激烈 宠物行业的营销光靠硬广告很难吸引受众 现在的大趋势应该是软文营销为主 那么宠物行业应该如
  • Neural Network Intelligence (NNI)

    环境 conda install pytorch 1 7 0 torchvision 0 8 0 torchaudio 0 7 0 cudatoolkit 10 1 c pytorch 每次看起来都很简单 自己写起来才知道哪里不会 impo
  • 【整合】【故障排查】LINUX系统资源使用情况排查(top、htop、ps、pstree)

    LINUX系统资源使用情况排查 工作中我们常见的资源使用情况的排查包括 CPU使用情况 内存使用情况 网络带宽使用情况等等 而我们常用的工具有top htop ps pstree等等 htop top加强版 pstree ps加强版 ps与
  • spark sql 创建rdd以及DataFrame和DataSet互转

    spark sql 创建rdd以及DataFrame和DataSet互转 使用SparkSession读取本地文件创建rdd DateSet的介绍 DataFrame的介绍 Rdd转DateFrame 读取本地文件得到DataFrame D
  • 剑指offer面试题62(java版):圆圈中最后剩下的数字

    welcome to my blog 剑指offer面试题62 java版 圆圈中最后剩下的数字 题目描述 每年六一儿童节 牛客都会准备一些小礼物去看望孤儿院的小朋友 今年亦是如此 HF作为牛客的资深元老 自然也准备了一些小游戏 其中 有个
  • latex加空行,加分割线,注释,设置表格字体大小等操作

    1 在文字末尾加空行可以用 2 直接加空行可以用 3 分割线 hrule 4 Latex编辑器Texstudio的注释快捷键 注释 Ctrl T 取消注释 Ctrl U 5 设置表格字体大小 Latex字体大小设置代码 begin tabl
  • MobaXterm连接服务器(虚拟机)

    下载链接 MobaXterm 终端工具 下载 安装 使用教程 蜗牛也不慢 的博客 CSDN博客 这个讲的很详细了 注意虚拟机的IP获取
  • 关于UNITY中System.Drawing引用失败的处理方法

    关于UNITY中System Drawing引用失败的处理方法 今天在使用EPPlus中 遇到一个处于This type has been forwarded to assembly System Drawing Version 4 0 0
  • 解决pip下载pytorch因网速慢而失败的问题

    一 一般下载pytorch方法 1 首先打开浏览器 输入 pytorch 然后进行搜索 点击pytorch的官网就进入了 2 进入到pytorch的官网后 划叶到下面 找到下面的选择框 根据自己的配置 选择正确的版本号 选择完后 把红色框内
  • 完美立方(C语言)

    题目 形如 a 3 b 3 c 3 d 3a 3 b 3 c 3 d 3 的等式被称为完美立方等式 例如 12 3 6 3 8 3 10 312 3 6 3 8 3 10 3 编写一个程序 对任给的正整数 N N le 100 N N 10
  • C# AES加密算法

    using System using System Collections Generic using System IO using System Linq using System Security Cryptography using
  • Gradle 团队发布了Gradle 7.2

    Gradle 团队近日发布 Gradle 7 2 Gradle 是一个类似于 Maven 项目的自动化构建工具 支持依赖管理和多项目 Gradle 抛弃了 Maven 基于 XML 的繁琐配置 取而代之的是Gradle 采用了特定语言 Gr
  • python实现堆栈和队列

    1 python实现堆栈 可先将Stack类写入文件stack py 在其它程序文件中使用from stack import Stack 然后就可以使用堆栈了 stack py的程序如下 class Stack def init self