#include#include #include #include #include #include #define MAXLEN 100using namespace std;typedef struct{ char name[10]; int age;}DATA;typedef struct stack{ DATA data[MAXLEN+1]; int top;}StackType;StackType * STInit(){ StackType * p; if(p=(StackType*)malloc(sizeof(StackType))){ p->top=0; return p; } return NULL;}int STIsEmpty(StackType* s){ int t; t=(s->top==0); return t;}int STIsFull(StackType * s ){ int t; t=(s->top==MAXLEN); return t; }void STClear(StackType * s){ s->top=0;} void STFree(StackType * s){ if(s){ free(s); }}int PushST(StackType *s , DATA data){ if((s->top+1)>MAXLEN){ cout<<"栈溢出!\n"; return 0; } s->data[++s->top]=data; return 1;}DATA PopST(StackType * s){ if(s->top==0){ cout<<"栈为空!\n"; exit(0); } return (s->data[s->top--]);}DATA PeekST(StackType * s){ if(s->top==0){ cout<<"栈为空!\n"; exit(0); } return (s->data[s->top]);}int main(){ StackType * stack; DATA data1, data; stack=STInit(); cout<<"入栈操作:\n"; cout<<"输入姓名 年龄进行操作:\n"; do{ cin>>data.name>>data.age; if(strcmp(data.name,"0")==0){ break; } else{ PushST(stack, data); } }while(1); do{ cout<<"出栈操作:按任意键进行出栈操作:\n"; getchar(); data1=PopST(stack); cout<<"出栈的数据是"< <<" "< <