#include<stdio.h> #include<malloc.h> #define MaxSize 100 typedef struct{ char arr[MaxSize]; int top; }Stack; void InitStack(Stack *&s){ s = (Stack *)malloc(sizeof(Stack)); s->top = -1; } void DestroyStack(Stack *&s){ free(s); } void push(Stack *&s,char c){ if( (s->top+1)==MaxSize-1){ printf("stack is full!\n"); }else{ s->arr[++s->top] = c; } } void pop(Stack *&s){ if(s->top==-1){ printf("stack is null!\n"); return; } while(s->top>-1){ printf("%c",s->arr[s->top--]); } } int main(){ int loop = 0; scanf("%d",&loop); char c; //init Stack *s; InitStack(s); //null getter getchar(); while(loop--){ while( (c=getchar())!=‘\n‘ ){ if(c!=‘ ‘){//push push(s,c); }else{//pop pop(s); printf(" "); } } pop(s); printf("\n"); //reset top s->top = -1; } DestroyStack(s); return 0; }
采用栈的先进后出的特点完成逆序输出,但是杭电判定编译错误,指出缺少 ")" 等未知错误!暂时不知道如何解决!
原文地址:https://www.cnblogs.com/kyrie211/p/11087569.html
时间: 2024-10-08 17:29:13