队列特点:先进先出 (栈特点:先进后出)
这里依托于 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)# 将最前面的元素从队列中删除并返回值,如果删除之前队列为空,那么返回 -1def 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
有什么建议,欢迎大家提问!!!