问题详情

【C程序】

#include<stdio.h>

/*此处为栈类型及其基本操作的定义,省略*/

int main(){

STACK station;

int state[1000];

int n; /*车厢数*/

int begin, i, j, maxNo; /*maxNo为A端正待入栈的车厢编号*/

printf("请输入车厢数:");

scanf("%d",&n);

printf(“请输入需要判断的车厢编号序列(以空格分隔):”);

if(n1)return-1;

for (i=0; i<n; i++) /*读入需要驶出的车厢编号序列,存入数组state[]*/

scanf("%d",&state[i]);

(1) ; /*初始化栈*/

maxNo=1;

for(i=0; in; ){ /*检查输出序列中的每个车厢号state[i]是否能从栈中获取*/

if( (2) ){ /*当栈不为空时*/

if (state[i]=Top(station)) { /*栈顶车厢号等于被检查车厢号*/

printf("%d",Top(station));

Pop(&station);i++;

else

if ( (3) ) {

printf(“error\n”);

return 1;

else{

begin= (4) ;

for(j=begin+l;j <=state [i];j++){

Push(&station, j);

}

else{ /*当栈为空时*/

begin=maxNo;

for(j=begin; j<=state[i];j++) {

Push(&station, j);

maxNo= (5) ;

printf("OK");

return 0;

参考答案
您可能感兴趣的试题