Question 1
编号为1,2,3,4的四辆列车,顺序开进一个栈式结构的站台;则开出车站的顺序有______种可能。
Question Explanation
Question Explanation
只用front和rear两个指针标记队列的头和尾,无法区分空队列和满队列两种状态,所以只能容纳n-1个元素。而增加len或empty都可以区分这两种状态,因此可以容纳n个元素。
出栈次序是经典的问题,与组合数学中的卡特兰数密切相关,以下只介绍朴素的思路。
先进站的车可以先开,也可以后开。只有一种情况不可能:编号大的车开出后,比其编号小的车反序开出。也即编号大的车开出后,编号比其小的车只能由大到小依次开出(中间可以插入编号更大的车,但此车后面的编号小的车也要遵守此规则)。例如312的开出顺序是不可能的。对所有车进行全排列共有24种出法。但4开头的只能有一种:4321。所以少了3的全排列-1=5种。三开头的时候,必须先2后1开出,先1后2时4的位置有三种:
3124、3142、3412,所以少了三种。1或2开头的时候,后面的车如果是4,则最后两辆必须是3、2或3、1。所以又少了1423、2413两种。总共少了5+3+2=10种,有24-10=14种开出法。
下面用+表示进站,-表示出站:
1234:1+ 1- 2+ 2- 3+ 3- 4+ 4-
1243:1+ 1- 2+ 2- 3+ 4+ 4- 3-
1324:1+ 1- 2+ 3+ 3- 2- 4+ 4-
1342:1+ 1- 2+ 3+ 3- 4+ 4- 2-
1432:1+ 1- 2+ 3+ 4+ 4- 3- 2-
2134:1+ 2+ 2- 1- 3+ 3- 4+ 4-
2143:1+ 2+ 2- 1- 3+ 4+ 4- 3-
2314:1+ 2+ 2- 3+ 3- 1- 4+ 4-
2341:1+ 2+ 2- 3+ 3- 4+ 4- 1-
2431:1+ 2+ 2- 3+ 4+ 4- 3- 1-
3214:1+ 2+ 3+ 3- 2- 1- 4+ 4-
3241:1+ 2+ 3+ 3- 2- 4+ 4- 1-
3421:1+ 2+ 3+ 3- 4+ 4- 2- 1-
4321:1+ 2+ 3+ 4+ 4- 3- 2- 1-
Question 2
以下循环队列的实现方式中,长度为n的队列,所能容纳的元素个数也为n的有
只用front和rear两个指针标记队列的头和尾,无法区分空队列和满队列两种状态,所以只能容纳n-1个元素。而增加len或empty都可以区分这两种状态,因此可以容纳n个元素。
Question 3
双端队列可以在队列的两端进行插入和删除操作,既可在队尾进行插入/删除,又可在队头进行插入/删除。现有5个不同的元素顺序输入到双端队列,那么可以得到_____种不同的排列。
Question Explanation
第一个元素从左或右入队没有区别,以后每个元素都有从左和从右两种入队方式,即有 2x−1 种方法。
第一个元素从左或右入队没有区别,以后每个元素都有从左和从右两种入队方式,即有 2x−1 种方法。