python資料結構與演算法 佇列與雙端佇列

2021-10-02 15:07:07 字數 1648 閱讀 3049

雙端佇列: 

#################佇列####################

#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):

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):

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())

資料結構與演算法 佇列

學習了好長 一段時間的資料結構,由於時間關係一直沒有寫部落格。這次打算將這段時間的學習內容寫下來做個整理。佇列作為線性結構的一種,其實用性不用多說。這裡總結下兩種結構的佇列實現。迴圈佇列 先列下以順序表結構形成的普通順序佇列存在的問題 隊頭不斷刪除元素,將使佇列的頭部空出單元 隨著刪除 插入的進行,...

資料結構與演算法 佇列

佇列 佇列與棧不同,它是一種先進先出的結構 實現 1 陣列 2 鍊錶 記錄的資料 1 隊首位置 第乙個元素的位置 2 隊尾位置 最後乙個元素的位置 3 佇列大小 size 佇列操作 entryqueue 入隊 exitqueue 出隊 isqueueempty 隊列為空 isqueuefull 佇列...

演算法與資料結構 佇列

adt queue d d 資料關係 r r a i d,i 2,3,n r 約定a 1a 1 a1 端為隊首,a na n an 端為隊尾。基本操作 create 建立乙個空佇列 emptyque 若隊列為空,則返回true,否則返回false insertque x 向隊尾插入元素x delet...