程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

python队列及模型代码

hfteth 2025-08-06 19:44:12 技术文章 3 ℃

队列

定义:队列是限制两端进行插入操作和删除操作的线型表允许进行存入操作的一端叫作队尾,允许进行删除的一端叫作“队头”

特点:队列只能在队头队尾进行操作。

队列具有先进先出或者叫后进后出的规律。

应用:如银行的排号系统。


代码现实:

队列有“入队”,“出队”,队的空满等操作。

顺序存储模型:data03/squeue.py

链表存储模型:dqta03/queue.py

'''

.队列:顺序存储模型(列表)

功能:入队(从尾部)----出队(从头部)

'''

#自定义异常

class stackError(Exception):

pass

class Squeue:

def __init__(self):

self._elems=[]

def empyt(self):

return self._elems==[]

def enqueue(self, val):

#self._elems.insert(0,val)#前进

self._elems.append(val)#后进

def dequeue(self):

#后出return self._elems.pop()

return self._elems.pop(0)#前出

def show(self):

for item in self._elems:

print(item,end=" ")

print()

def top(self):

if self._elems==[]:

raise stackError("squeue is empty")

return self._elems[0]


#测试:

if __name__=="__main__":

s=Squeue()

for item in range(1,10):

s.enqueue(item)

print(s.dequeue())

s.show()

print(s.top())

########反转队列###########

from sstack import SStack

st=SStack()#新建一个栈

#根据栈后进先出的特点反转队列

while not s.empyt():#只要队列不为空,把队列元素放入栈

st.push(s.dequeue())

while not st.is_empty():#只要栈不为空,把栈里的元素取出放出队列

s.enqueue(st.pop())

s.show()

Tags:

最近发表
标签列表