具体题目如下:
先列举我用c语言写的代码:
#include <stdio.h>
#define maxn 1000+10
int n,target[maxn];//n用来存储火车的数量,target用来存储火车出站顺序
typedef struct{//定义一个栈的数据类型
int top;
int data[maxn];
}stack;
int empty(stack s){return !s.top; }//判断栈是否为空
int top(stack s){return s.data[s.top-1]; }//获得栈顶元素
void pop(stack* s){s->top--; }//出栈
void init(stack* s){s->top = 0; }//初始化一个栈
void push(stack* s,int m){s->data[s->top++] = m; }//入栈
int main() {
while(scanf("%d",&n)==1){//源源不断的获取车的数量,直到文件末尾为止
stack s;//声明一个栈
init(&s);//初始化栈
int i,ok=1;//ok表示能否按指定顺序出栈
for(i=0;i<n;i++) scanf("%d",&target[i]);//记录出栈顺序
int A = 1,B = 0;//A表示火车的序号(从1