队列特点:先进先出 (栈特点:先进后出)
这里依托于 python中的列表,简单实现,由于列表的强大属性,实现循环队列,双队列也很简单,本例进行了一个大概的集中体现
主要实现,入队(头,中,尾),出队(头,中,尾)
class FrontMiddleBackQueue(object):
def __init__(self):
self.Que=[]
# 将 val 添加到队列的最前面
def pushFront(self, val):
"""
:type val: int
:rtype: None
"""
self.Que.insert(0,val)
# 将 val 添加到队列的正中间
def pushMiddle(self, val):
"""
:type val: int
:rtype: None
"""
self.Que.insert(len(self.Que)//2, val)
# 将 val 添加到队里的最后面
def pushBack(self, val):
"""
:type val: int
:rtype: None
"""
self.Que.insert(len(self.Que),val)
# 将最前面的元素从队列中删除并返回值,如果删除之前队列为空,那么返回 -1
def popFront(self):
"""
:rtype: int
"""
if self.Que:
"""
temp=self.Que[0]
self.Que.pop(0)
"""
return self.Que.pop(0)
else:
return -1
# 将正中间的元素从队列中删除并返回值,如果删除之前队列为空,那么返回 -1 。
def popMiddle(self):
"""
:rtype: int
"""
if self.Que:
"""
temp=self.Que[(len(self.Que)-1)//2]
self.Que.pop((len(self.Que)-1)//2)
"""
return self.Que.pop((len(self.Que)-1)//2)
else:
return -1
# 将最后面的元素从队列中删除并返回值,如果删除之前队列为空,那么返回 -1 。
def popBack(self):
"""
:rtype: int
"""
if self.Que:
"""
temp=self.Que[len(self.Que)-1]
self.Que.pop(len(self.Que)-1)
"""
return self.Que.pop()
else:
return -1
有什么建议,欢迎大家提问!!!