python栈与队列(python栈和队列在功能上的区别)

1.python栈和队列在功能上的区别

“栈” 和 “队列” 是数据结构,与具体的语言无关。

1.队列先进先出,栈先进后出。

2. 对插入和删除操作的"限定"。 栈是限定只能在表的一端进行插入和删除操作的线性表。 队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。 从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同。但它们是完全不同的数据类型。除了它们各自的基本操作集不同外,主要区别是对插入和删除操作的"限定"。 栈和队列是在程序设计中被广泛使用的两种线性数据结构,它们的特点在于基本操作的特殊性,栈必须按"后进先出"的规则进行操作,而队列必须按"先进先出" 的规则进行操作。和线性表相比,它们的插入和删除操作受更多的约束和限定,故又称为限定性的线性表结构。

3.遍历数据速度不同。栈只能从头部取数据 也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性队列怎不同,他基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像数据结构,速度要快的多

栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。

队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。

从"数据结构"的角度看,它们都是线性结构,即数据元素之间的关系相同。但它们是完全不同的数据类型。除了它们各自的基本操作集不同外,主要区别是对插入和删除操作的"限定"。

栈和队列是在程序设计中被广泛使用的两种线性数据结构,它们的特点在于基本操作的特殊性,栈必须按"后进先出"的规则进行操作,而队列必须按"先进先出"的规则进行操作。和线性表相比,它们的插入和删除操作受更多的约束和限定,故又称为限定性的线性表结构。

2.python答疑:关于队列出栈和入栈的,报错是why

没有问题啊 你的代码缩进有问题吧:

class MyStack(object):

def __init__(self, max):

self.head = -1

self.stack = list()

self.max = max

for i in range(self.max):

self.stack.append(0)

def put(self, item):

if self.head >= self.max:

return 'Put Error: The Stack is Overflow!'

else:

self.head += 1

self.stack[self.head] = item

print 'Put %s Success' % item

def get(self):

if self.head return 'Get Error: The Stack is Empty!'

else:

self.head -= 1

return self.stack[self.head+1]

def isEmpty(self):

if self.head return True

return False

if __name__ == "__main__":

mystack = MyStack(100)

mystack.put('a')

mystack.put('b')

print mystack.get()

mystack.put('c')

print mystack.get()

print mystack.get()

print mystack.get()

3.栈与队列的区别

1、队列先进先出,栈先进后出。

2、对插入和删除操作的"限定"不同。

栈是限定只能在表的一端进行插入和删除操作的线性表。

队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。

3、遍历数据速度不同。

栈只能从头部取数据,也就最先放入的需要遍历整个栈最后才能取出来,而且在遍历数据的时候还得为数据开辟临时空间,保持数据在遍历前的一致性。

队列则不同,它基于地址指针进行遍历,而且可以从头或尾部开始遍历,但不能同时遍历,无需开辟临时空间,因为在遍历的过程中不影像数据结构,速度要快的多

扩展资料

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。

向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。

参考资料来源:搜狗百科—队列 (常用数据结构之一)

参考资料来源:搜狗百科—栈 (计算机术语)

4.栈和队列区别

这个事做编译环境时人工与编程好了的

内存中不存在这样的结构,内存是一张“空白纸”,停电就啥也没有了……

--------

在内存中有个系统分配的堆和栈,前者用来存放

程序中的全局变量、静态变量,后者用来存放程序中的局部变量。

DS中的栈和队列是一种自定义的存储数据的类型,他们都是根据实际应用的需要而创建的,

简单的说,堆栈是由系统管理、分配、回收的,而DS中的栈、队列则有用户定义、使用。

python栈与队列

转载请注明出处编程代码网 » python栈与队列(python栈和队列在功能上的区别)

资讯

workflowpython(在Python环境下比较好的工作流引擎是什么)

阅读(17)

本文主要为您介绍workflowpython,内容包括在Python环境下比较好的工作流引擎是什么,大家都用python做什么开发,大家都用python做哪些开发。CSDN:FixFlow 和类似的软件如 Activiti jBPM 等相比起来,它们之间有哪些区别呢?FFDT:FixFlow 更加符

资讯

snifferpython(如何让gsmsniffer变得更加智能化)

阅读(19)

本文主要为您介绍snifferpython,内容包括python遇到网络问题时,怎么解决,如何让gsmsniffer变得更加智能化,如何让gsmsniffer变得更加智能化。当python 遇上 Arduino,似乎一切都在变得更加智能化。你还在手动断开你的C118电源吗?你还在手动按

资讯

用python表白(如何用python写一段浪漫的代码)

阅读(20)

本文主要为您介绍用python表白,内容包括如何优雅地向python程序员表白,如何优雅地向python程序员表白,如何用python写一段浪漫的代码。简单的,可以使用python 的CGI模块,需要你的服务器开启CGI支持。网页内容如下:1234567891011<html> <hea

资讯

python上嵌入文字(Python如何在图片上添加带格式的文本)

阅读(19)

本文主要为您介绍python上嵌入文字,内容包括Python如何在图片上添加带格式的文本,怎样用python在图片里添加一段文字,python中关于图片添加文字。打开IDLE软件,导入相关函数库。from PIL import Image, ImageDraw,ImageFontpython如何给

资讯

apache2.4python(如何使用apache发布python项目)

阅读(43)

本文主要为您介绍apache2.4python,内容包括XP+Python2.5+Apache2.2.4+modpython3.3.1的问题我装的是,Python2.4和apache2.2用modwsgi连接如何设置工程目录的路径用什,zope,python,apache之间是什么关系。首先检查以下要求是否已经达到: Apac

资讯

pythonunix时间戳转换(python怎么将时间戳转化为日期)

阅读(21)

本文主要为您介绍pythonunix时间戳转换,内容包括python如何获取13位的UNIX时间戳,python怎么将时间戳转化为日期,timestamp怎么转换python。当前时间戳:time.time()当前日期:time.ctime()Python下日期到时间戳的转换import datetimeimp

资讯

sphinxpython安装(如何使用sphinx生成Python第三方模块的文档)

阅读(14)

本文主要为您介绍sphinxpython安装,内容包括如何使用sphinx生成Python第三方模块的文档,sphinx在windows下到底怎么安装,如何把外部文件导入sphinx。在使用Python的过程中,无疑我们经常需要下载安装第三方模块(如何安装:URL),而安装后我们必然会

资讯

python如何使用源文件(python如何编译使用源文件)

阅读(13)

本文主要为您介绍python如何使用源文件,内容包括简明Python教程里的使用源文件怎么弄啊,python如何编译使用源文件,Python怎么使用源文件。因为系统找不到python.exe,所以说"NO SUCH……“ 你需要进入python目录 c:\python25> 这样的状态输

资讯

python获取股票数据(怎样用python处理股票)

阅读(15)

本文主要为您介绍python获取股票数据,内容包括如何用python获取股票数据,如何用python抓取股票数据,如何用python取所有股票一段时间历史数据。用Python处理股票需要获取股票数据,以国内股票数据为例,可以安装Python的第三方库:tushare;一个国

资讯

python获取客户端ip(python怎么获取本机ip)

阅读(15)

本文主要为您介绍python获取客户端ip,内容包括Python中服务器端获取webservice客户端IP地址,python怎么获取本机ip,求助,python如何获取网站的ip。第一种:复制代码代码如下:import socket import fcntl import struct def get_ip_add

资讯

pythonhttpip伪造(如何伪造http请求的ip地址)

阅读(41)

本文主要为您介绍pythonhttpip伪造,内容包括python可以伪造ip发送http请求吗,如何伪造http请求的ip地址,(pythonsocket伪造client的ip地址)有一python写的socket服务端只接。在项目开发中(web项目),我负责的系统(简称PC),需要调其它系统接口,并且

资讯

python调用windows下的dll(怎样用python调用dll)

阅读(14)

本文主要为您介绍python调用windows下的dll,内容包括Windows下如何在python中调用c语言程序编译的dll,怎样用python调用dll,如何用python调用应用程序的.dll文件。可以的,python中一般有两种方法调用DLL中的函数。1.直接使用函数名,函数名可

资讯

pythonrpyc安装(pythonsimpleitk怎么安装)

阅读(17)

本文主要为您介绍pythonrpyc安装,内容包括pythonsimpleitk怎么安装,python怎么装"matplotlib",tesserocrpython怎么安装。python中安装第三方库用pip install SImpleITK语句即可但是SImpleITK库你有可能安装不上(我也不知道为什么

资讯

workflowpython(在Python环境下比较好的工作流引擎是什么)

阅读(17)

本文主要为您介绍workflowpython,内容包括在Python环境下比较好的工作流引擎是什么,大家都用python做什么开发,大家都用python做哪些开发。CSDN:FixFlow 和类似的软件如 Activiti jBPM 等相比起来,它们之间有哪些区别呢?FFDT:FixFlow 更加符

资讯

snifferpython(如何让gsmsniffer变得更加智能化)

阅读(19)

本文主要为您介绍snifferpython,内容包括python遇到网络问题时,怎么解决,如何让gsmsniffer变得更加智能化,如何让gsmsniffer变得更加智能化。当python 遇上 Arduino,似乎一切都在变得更加智能化。你还在手动断开你的C118电源吗?你还在手动按

资讯

用python表白(如何用python写一段浪漫的代码)

阅读(20)

本文主要为您介绍用python表白,内容包括如何优雅地向python程序员表白,如何优雅地向python程序员表白,如何用python写一段浪漫的代码。简单的,可以使用python 的CGI模块,需要你的服务器开启CGI支持。网页内容如下:1234567891011<html> <hea

资讯

python上嵌入文字(Python如何在图片上添加带格式的文本)

阅读(19)

本文主要为您介绍python上嵌入文字,内容包括Python如何在图片上添加带格式的文本,怎样用python在图片里添加一段文字,python中关于图片添加文字。打开IDLE软件,导入相关函数库。from PIL import Image, ImageDraw,ImageFontpython如何给

资讯

apache2.4python(如何使用apache发布python项目)

阅读(43)

本文主要为您介绍apache2.4python,内容包括XP+Python2.5+Apache2.2.4+modpython3.3.1的问题我装的是,Python2.4和apache2.2用modwsgi连接如何设置工程目录的路径用什,zope,python,apache之间是什么关系。首先检查以下要求是否已经达到: Apac

资讯

pythonunix时间戳转换(python怎么将时间戳转化为日期)

阅读(21)

本文主要为您介绍pythonunix时间戳转换,内容包括python如何获取13位的UNIX时间戳,python怎么将时间戳转化为日期,timestamp怎么转换python。当前时间戳:time.time()当前日期:time.ctime()Python下日期到时间戳的转换import datetimeimp

资讯

pythonzipfile(python中的zipfile)

阅读(13)

本文主要为您介绍pythonzipfile,内容包括python中的zipfile,pythonzipfile把整个文件夹内的文件打包没有生成.zip文件,python用zipfile对文件进行压缩并加密(不让人解压缩并修改文件)如。python中的zipfile模块是用于解压/压缩zip文件的,压缩a