一个栈在第二次输出栈时,栈为空栈, 如果需要保持之前栈的原样,应该如何修改程序?
#include<stdio.h>#include "intstack.h"
void PrintStack(SqStack &S){
SElemType e;
while(!StackEmpty(S))
{ Pop(S,e);
printf("%3d",e);
}
printf("\n");
}/*Pop_and_Print*/
int CreateStack(SqStack &S){
int e;
if(InitStack(S))
{printf("初始化栈成功!\n");
prt_base_top_length(S);
}
else{
printf("初始化失败!\n");
return ERROR;
}
printf("\n输入需要入栈的各个整数:(Terminated by inputing a character)\n");
while(scanf("%d",&e))
{ Push(S,e);
prt_base_top_length(S);
};
return OK;
}/*CreateStack*/
int main(){
SqStack ss;
printf("1-建立栈\n");
CreateStack(ss);
printf("\n2-出栈并打印\n");
prt_base_top_length(ss);
PrintStack(ss);
prt_base_top_length(ss);
PrintStack(ss);
return 0;
}
$ gcc -g -Wall -o main main.c
main.c:2:10: fatal error: intstack.h: No such file or directory
2 | #include "intstack.h"
| ^~~~~~~~~~~~
compilation terminated.
$ 那你为什么还要用栈?
页:
[1]