某某杨 发表于 2021-11-27 17:28:51

一个栈在第二次输出栈时,栈为空栈, 如果需要保持之前栈的原样,应该如何修改程序?

#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;
}          

人造人 发表于 2021-11-28 14:32:16

$ 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.
$

最强废铁h 发表于 2021-12-3 16:39:12

那你为什么还要用栈?
页: [1]
查看完整版本: 一个栈在第二次输出栈时,栈为空栈, 如果需要保持之前栈的原样,应该如何修改程序?