python數據結構與算法:隊列與雙端隊列

雙端隊列: 

#################隊列####################
#coding:utf-8
"""
Deque() 創建一個空的雙端隊列
add_front(item) 從隊頭加入一個item元素
add_rear(item) 從隊尾加入一個item元素
remove_front() 從隊頭刪除一個item元素
remove_rear() 從隊尾刪除一個item元素
is_empty() 判斷雙端隊列是否爲空
size() 返回隊列的大小
"""
class Queue(object):
    def __init__(self):
        self.__list = []

    def enqueue(self,item):
        self.__list.append(item)

    def dequeue(self):
        return  self.__list.pop(0)

    def is_empty(self):
        return self.__list == []

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

if __name__ == "__main__":
    s = Queue()
    s.enqueue(1)
    s.enqueue(2)
    s.enqueue(3)
    s.enqueue(4)

    print(s.dequeue())
    print(s.dequeue())
    print(s.dequeue())
    print(s.dequeue())

#################雙端隊列####################
class Deque(object):
    def __init__(self):
        self.__list = []

    def add_front(self, item):
        self.__list.insert(0,item)

    def add_rear(self,item):
        self.__list.append(item)

    def pop_front(self):
        return self.__list.pop(0)

    def pop_rear(self):
        print(" ")
        return self.__list.pop()


    def is_empty(self):
        return self.__list == []

    def size(self):
        return len(self.__list)
if __name__=="__main__":
    s =Deque()
    s.add_rear(1)
    s.add_rear(2)
    s.add_front(3)
    s.add_front(4)
    print(s.pop_rear())
    print(s.pop_rear())
    print(s.pop_rear())
    print(s.pop_rear())

 

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