问题
队列中有从1到7(由小到大排列)的7个整数,问经过一个整数栈后,出栈的所有排列数有多少? 如果整数栈的容量是4(栈最多能容纳4个整数),那么出栈的排列数又是多少?
问题1代码
public class Catalan {
public static int answers = 0 ;
int maxStackSize = 4 ;
public static void go (int deq, int sta) {
if (deq>0 ) {
go(deq-1 , sta+1 );
}
if (sta>0 ) {
go(deq, sta-1 );
}
if (deq==0 &&sta==0 ) {
answers++;
}
}
public static void main (String[] args) {
Deque from = new Deque();
Deque to = new Deque();
Stack s = new Stack();
for (int i=1 ;i<=7 ;i++) {
from.addLast(i);
}
go(7 , 0 );
System.out.println(answers);
}
}
问题2代码
public class Catalan {
public static int answers = 0 ;
int maxStackSize = 4 ;
public static void go (int deq, int sta) {
if (deq>0 &&sta<maxStackSize) {
go(deq-1 , sta+1 );
}
if (sta>0 ) {
go(deq, sta-1 );
}
if (deq==0 &&sta==0 ) {
answers++;
}
}
public static void main (String[] args) {
Deque from = new Deque();
Deque to = new Deque();
Stack s = new Stack();
for (int i=1 ;i<=7 ;i++) {
from.addLast(i);
}
go(7 , 0 );
System.out.println(answers);
}
}