王道-考研-数据结构-双端队列-受限双端队列【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 | ||
| 1,2,4,3 | 2,1,4,3 | ||
| 1,3,2,4 | 2,3,1,4 | 3,2,1,4 | |
| 1,3,4,2 | 2,3,4,1 | 3,2,4,1 | |
| 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 | |
| 1,3,4,2 | 2,3,4,1 | 3,2,4,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 | |
| 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 | |
| 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 |
本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/16685707.html

浙公网安备 33010602011771号