C++结构体实现栈

#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;
}

 

posted @ 2022-03-24 15:52  今天也是开心的一天呀  阅读(91)  评论(0)    收藏  举报