去重的雙端隊列

import collections

#python雙端隊列 線程安全
class TaskQueue(object):
    def __init__(self):
        self.taskqueue = collections.deque()

    #從左邊彈出
    def lpop(self):
        if self.size() != 0:
            return self.taskqueue.popleft()

    #從右邊彈出
    def pop(self):
        if self.size() != 0:
            return self.taskqueue.pop()

    def lpush(self,task):
        if task not in self.taskqueue:
            self.taskqueue.appendleft(task)

    def rpush(self,task):
        if task not in self.taskqueue:
            self.taskqueue.append(task)

    def show_task(self):
        return self.taskqueue

    def size(self):
        return len(self.taskqueue)

if __name__ == '__main__':
    tqueue = TaskQueue()
    tqueue.rpush(12)
    tqueue.rpush(1)
    tqueue.rpush(2)
    tqueue.rpush(12)
    tqueue.rpush(1)
    tqueue.lpush(12)
    tqueue.lpush(1)
    print tqueue.taskqueue

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章