|
发表于 2023-12-22 13:29:09
|
显示全部楼层
下面是一个用C语言实现的输出所有可能的出栈序列的示例代码:
- #include <stdio.h>
- #define MAX_SIZE 100
- void generate_sequences(int stack[], int n, int cur, int sequence[], int used[]) {
- if (cur == n) {
- for (int i = 0; i < n; i++) {
- printf("%d ", sequence[i]);
- }
- printf("\n");
- return;
- }
- for (int i = 1; i <= n; i++) {
- if (!used[i]) {
- stack[cur] = i;
- used[i] = 1;
- generate_sequences(stack, n, cur + 1, sequence, used);
- used[i] = 0;
- }
- }
- }
- void possible_sequences(int n) {
- int stack[MAX_SIZE];
- int sequence[MAX_SIZE];
- int used[MAX_SIZE] = {0};
- generate_sequences(stack, n, 0, sequence, used);
- }
- int main() {
- int n;
- printf("请输入栈的大小:");
- scanf("%d", &n);
- possible_sequences(n);
- return 0;
- }
复制代码
使用该代码,你可以输入栈的大小,然后得到所有可能的出栈序列。例如,如果输入栈的大小为3,则输出结果为:
- 1 2 3
- 1 3 2
- 2 1 3
- 2 3 1
- 3 1 2
- 3 2 1
复制代码
希望这个示例能够帮助到你!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|