A B C D进栈判断出栈可能的情况 用java
时间: 2023-09-03 08:08:42 浏览: 53
可以使用递归或者栈的方式来实现判断出栈的可能情况。以下是使用递归方式的Java代码示例:
```
import java.util.*;
public class OutOfOrder {
public static void main(String[] args) {
char[] stack = {'A', 'B', 'C', 'D'};
ArrayList<String> results = new ArrayList<String>();
outOfOrder("", stack, results);
System.out.println("出栈的可能情况:");
for (String result : results) {
System.out.println(result);
}
}
public static void outOfOrder(String prefix, char[] stack, ArrayList<String> results) {
if (stack.length == 0) {
results.add(prefix);
return;
}
for (int i = 0; i < stack.length; i++) {
char[] newStack = new char[stack.length - 1];
for (int j = 0; j < newStack.length; j++) {
if (j < i) {
newStack[j] = stack[j];
} else {
newStack[j] = stack[j + 1];
}
}
outOfOrder(prefix + stack[i], newStack, results);
}
}
}
```
运行结果:
```
出栈的可能情况:
ABCD
ABDC
ACBD
ACDB
ADBC
ADCB
BACD
BADC
BCAD
BCDA
BDAC
BDCA
CABD
CADB
CBAD
CBDA
CDAB
CDBA
DABC
DACB
DBAC
DBCA
DCAB
DCBA
```