下面是一个用C语言实现的输出所有可能的出栈序列的示例代码:#include <stdio.h>#define MAX_SIZE 100void 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 31 3 22 1 32 3 13 1 23 2 1
希望这个示例能够帮助到你!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |