#include <iostream>
#include <cstring>
using namespace std;
typedef struct node1{
int age;
string name;
struct node1 * next;
}student;
typedef struct node2{
int size;
student * Top;
}stack;
//初始化栈
stack * Initstack(){
stack * mystack =new stack;
mystack->size=0;
mystack->Top=NULL;
return mystack;
}
//压栈
void pushstack(stack * mystack, int age,string name){
student * p=new student;
p->age=age;
p->name=name;
p->next=mystack->Top;
mystack->Top=p;
mystack->size++;
}
//出栈
void popstack(stack * mystack){
student * q=mystack->Top;
mystack->Top=q->next;
mystack->size--;
delete q;
}
//遍历栈
void printstack(stack * mystack){
cout<<"打印开始时 mystack的栈顶元素地址为"<<mystack->Top<<endl;
student * curNode=mystack->Top;
while(curNode!=NULL){
cout<<curNode->age<<curNode->name<<"元素地址为"<<curNode<<endl;
curNode=curNode->next;
}
cout<<"打印结束时 mystack的栈顶元素地址为"<<mystack->Top<<endl;
}
int main(){
stack * mystack=Initstack();
pushstack(mystack,1,"AA");
pushstack(mystack,2,"BB");
pushstack(mystack,3,"CC");
printstack(mystack);
popstack(mystack);
printstack(mystack);
system("pause");
return 0;
}