王道-考研-数据结构-双端队列-受限双端队列【queue++】

3. 双端队列

3.1. 定义

双端队列:只允许从两端插入两端删除的线性表。

输入受限的双端队列:只允许从一端插入两端删除的线性表。

输出首先的双端队列:只允许从两端插入一端删除的线性表。

3.2. 问题

若数据元素输入序列为:1,2,3,4,则哪些输出序列是合法的?哪些是非法的?

\[A^{4}_{4}=4!=24 \]

3.2.1. 对栈合法的序列

1,x,x,x 2,x,x,x 3,x,x,x 4,x,x,x
1,2,3,4 2,1,3,4 3,1,2,4 4,1,2,3
1,2,4,3 2,1,4,3 3,1,4,2 4,1,3,2
1,3,2,4 2,3,1,4 3,2,1,4 4,2,1,3
1,3,4,2 2,3,4,1 3,2,4,1 4,2,3,1
1,4,2,3 2,4,1,1 3,4,1,2 4,3,1,2
1,5,3,2 2,4,3,3 3,4,2,1 4,3,2,1

卡特兰数:

\[\frac{1}{n+1} C^{n}_{2n} =\frac{1}{4+1} C^{5}_{8} =14 \]

3.2.2. 对输入受限的双端队列合法的序列

1,x,x,x 2,x,x,x 3,x,x,x 4,x,x,x
1,2,3,4 2,1,3,4 3,1,2,4 4,1,2,3
1,2,4,3 2,1,4,3 3,1,4,2 4,1,3,2
1,3,2,4 2,3,1,4 3,2,1,4 4,2,1,3
1,3,4,2 2,3,4,1 3,2,4,1 4,2,3,1
1,4,2,3 2,4,1,1 3,4,1,2 4,3,1,2
1,5,3,2 2,4,3,3 3,4,2,1 4,3,2,1

3.2.3. 对输出受限的双端队列合法的序列

1,x,x,x 2,x,x,x 3,x,x,x 4,x,x,x
1,2,3,4 2,1,3,4 3,1,2,4 4,1,2,3
1,2,4,3 2,1,4,3 3,1,4,2 4,1,3,2
1,3,2,4 2,3,1,4 3,2,1,4 4,2,1,3
1,3,4,2 2,3,4,1 3,2,4,1 4,2,3,1
1,4,2,3 2,4,1,1 3,4,1,2 4,3,1,2
1,5,3,2 2,4,3,3 3,4,2,1 4,3,2,1
posted @ 2022-09-12 10:55  咸瑜  阅读(235)  评论(0)    收藏  举报