徹底搞懂雙端隊列及輸入/輸出受限的雙端隊列

雙端隊列相關概念

雙端隊列:兩端都可以進行入隊和出隊操作的隊列。
棧:限制其一端既不允許插入也不允許刪除。
普通隊列:限制其一端不允許插入,而限制另一端不允許刪除。

在這裏插入圖片描述
輸入限制的雙端隊列:限制一端只能進行刪除操作,而另一端不做限制,也就是說插入(輸入)操作受到了限制。
在這裏插入圖片描述

輸出限制的雙端隊列:限制一端只能進行插入操作,而另一端不做限制,也就是說刪除(輸出)操作受到了限制。
在這裏插入圖片描述

雙端隊列應用

設有一個雙端隊列,元素進入該隊列的順序是1,2,3,4試分別求出滿足下列條件的輸出序列。
1.不可能通過輸入受限的雙端隊列輸出的序列是?

先使左端既不能輸入,也不能輸出,即成了一個棧,看此時不可能的輸出序列有10種。
在這裏插入圖片描述
現在把左端的限制重新放開,就可以導出這10種中的一部分,剩下的就是不可導出的部分了。
在這裏插入圖片描述
下面一第一組1、4、2、3輸出序列爲例說明:

在這裏插入圖片描述

注:其中I代表輸入操作,OL代表從左端輸出,OR代表從右端輸出。

顯然第一組是可以輸出的,其他同理就不在此贅述了。
下面再以第八組4、2、1、3爲例說明:
在這裏插入圖片描述
顯然4輸出後,無論從左端還是右端都無法輸出2,所以這組不可輸出。
同理第九組也不可輸出。
所以最後不可能通過輸入受限的雙端隊列輸出的序列是第八組4、2、1、3和第九組4、2、3、1

2.不可能通過輸出受限的雙端隊列輸出的序列是?

與第一問同理,先使左端既不能輸入,也不能輸出,即成了一個棧,看此時不可能的輸出序列有10種。
在這裏插入圖片描述
下面還是以第一組1、4、2、3輸出序列爲例說明:
在這裏插入圖片描述
由於2先於3出隊,而且只能從右端輸出,所以3只能從左端入隊。
顯然第一組是可以輸出的,其他同理就不在此贅述了。
下面再以第七組4、1、3、2爲例說明:

在這裏插入圖片描述
顯然1輸出後,本應先輸出的3卻只能跟在2後邊輸出,所以這組不可輸出。
同理第九組也不可輸出。
所以最後不可能通過輸入受限的雙端隊列輸出的序列是第七組4、1、3、2和第九組4、2、3、1

3.既不能由輸入受限的雙端隊列得到,也不能由輸出受限的雙端隊列的輸出序列?

只有第九組4、2、3、1

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