数据结构---双端队列的python实现及其应用
·
1.双端队列的概念
双端队列也是一种有次序的数据集,但其数据项的加入或移除可以从发生在队尾也可发生在队首。
这种特性意味着它既具有栈的特性也能充当队列使用。
2.双端队列的python实现
class Deque:
# 双端队列
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def addFront(self,item):
self.items.append(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)
def size(self):
return len(self.items)
3.双端队列的应用
(1)回文词的判断
问题描述:判断单词是否是回文词
思路:同时从两端取出回文词的字母进行判断,回文词加入双端队列的过程从一端进行(注意加入两端队列或者去除数据项中至少有一步是在同端进行的)。
def palchecker(aString):
# 回文词的判断
chardeque = Deque()
for i in aString:
chardeque.addFront(i) # 将单词的所有字母都从首端添加到双端列表中
still_equal = True # 首尾字母的判断结果,默认为正确
while chardeque.size()>1 and still_equal:
first = chardeque.removeFront()
second = chardeque.removeRear()
if first != second:
still_equal = False
return still_equal
palchecker('aba') # True
palchecker('madam') # True
palchecker('aaba') # False更多推荐

所有评论(0)