仍然有错,明天有时间帮他看 #include <iostream> #include <string> using namespace std; struct data { string name; string cproperty; struct data *next; }; typedef struct { data *front; data *rear; }stack; void init_stack(stack *p) { data *q=new data; #ifdef _DEBUG cout<<"init_stack called"<<endl; #endif p->front=q; p->rear=p->front; p->front->next=NULL; delete q; } int enter_stack(stack *pstack,data *pdata) { data *p=new data; #ifdef _DEBUG cout<<"enter_stack called"<<endl; #endif pstack->rear->next=p; pstack->rear=pstack->rear->next; if(!pstack->rear) return 0; pstack->rear->name=pdata->name; pstack->rear->cproperty=pdata->cproperty; pstack->rear->next=NULL; delete p; } void visit_stack(stack *pstack) { data *pdata=new data; pdata=pstack->front->next; if(pstack->front==pstack->rear) cout<<"The stack is empty"<<endl; else while(pdata) { cout<<"The name is "<<pdata->name<<" "<<"The property is"<<pdata->cproperty<<endl; pdata=pdata->next; } delete pdata; } int main () { stack *pstack=new stack; char temple='Y'; init_stack(pstack); while (temple=='y' || temple=='Y') { data *pdata=new data; cout<<"Please enter an english word "<<endl; cin>>pdata->name; cout<<"Please enter the property of the word"<<endl; cin.clear(); cin>>pdata->cproperty; enter_stack(pstack,pdata); cout<<"Continue or Stepout----N or Y"<<endl; cin.clear(); cin>>temple; delete pdata; } visit_stack(pstack); cin.get(); }