- 締切済み
C言語のソースの説明なんですが
#include <stdio.h> #define MAX 256 void pushdown(char *S, char x); char popup(char *S); void initialize(char *S); int empty(char *S); int top=0; void pushdown(char *S, char x){ /*スタックSにデータxを記憶*/ if(top<MAX){ top++; S[top]=x; } else{ printf("Stack S overflows.\n"); } } char popup(char *S){ /*スタックSからデータの取出し*/ if(top>0){ top--; return(S[top+1]); } else{ printf("Stack S is empty.\n"); return('\0'); } } void initialize(char *S){ int i; top=0; for(i=1;i<MAX;i++){ S[i]='\0'; } } int empty(char *S){ if(top==0){ return(1); } return(0); } int main(void){ char x; char S[MAX]; pushdown(S,'a'); pushdown(S,'b'); pushdown(S,'c'); x=popup(S); x=popup(S); pushdown(S,'d'); x=popup(S); pushdown(S,'e'); while(!empty(S)){ printf("%c", popup(S)); } printf("\n"); return(0); } 上記のソースリストに説明を載せなくてはいけないのですがどれが何をしているのかほとんど分からなくて困っています。(わかったのは既に書いてある2行分ぐらい) 長くて面倒ですが判る方、どうか助けてください。 (インデント等は省いています)
- みんなの回答 (2)
- 専門家の回答
お礼
ご丁寧な説明とアドバイスありがとうございます。 バグに関してはこれから書きなおしてみます。 あとインデントも気を付けるようにします。 ありがとうございました。