【数据结构与算法python】双端队列的python实现
1、双端队列的介绍 双端队列Deque是一种有次序的数据集,跟队列相似,其两端可以称作“首”“尾”端,但deque中数据项既可以从队首加入,也可以从队尾加入;数据项也可以从两端移除。
2、双端队列的性质 双端队列并不具有内在的LIFO或者FIFO特性,某种意义上说,双端队列集成了栈和队列的能力
3、双端队列的基本操作
class Deque:
# 创建一个空双端队列
def __init__(self):
self.items = []
# 判断deque是否为空
def isEmpty(self):
return self.items == []
# 将item加入队首
def addFront(self, item):
self.items.append(item)
# 将item加入队尾
def addRear(self, item):
self.items.insert(0,item)
# 从队首移除数据项,返回值为移除的数据项
def removeFront(self):
return self.items.pop()
# 从队尾移除数据项,返回值为移除的数据项
def removeRear(self):
return self.items.pop(0)
# 返回deque中包含数据项的个数
def size(self):
return len(self.items)
4、例子(回文词问题)
def palchecker(aString):
chardeque = Deque()
for ch in aString:
chardeque.addRear(ch)
stillEqual = True
while chardeque.size() > 1 and stillEqual:
first = chardeque.removeFront()
last = chardeque.removeRear()
if first != last:
stillEqual = False
return stillEqual
print(palchecker("lsdkjfskf"))
print(palchecker("radar"))
下一篇:
设计模式看了又忘,忘了又看?
