返回顶部

收藏

C++栈的链式存储

更多
#include<iostream>
using namespace std;

struct Data
{
    Data *next;
    int data;
};

class Link_Stack
{
private:
    Data *base;
    Data *top;
    int top1;
public:
    Link_Stack()
    {
        Data *temp=new Data;
        temp->data=NULL;
        top=temp;
        base=top;
        top1=0;
    }
    void push(int n)
    {
        Data* temp=new Data;
        temp->data=n;
        temp->next=top;
        top=temp;
        top1++;
    }
    int pop()
    {
        int t;
        t=top->data;
        top=top->next;
        top1--;
        return t;
    }
    void output()
    {
        Data *p=top;
        while(p->data!=NULL)
        {
        cout<<p->data<<" ";
        p=p->next;
        }
    }
};
int main()
{
    Link_Stack a;
    int i,n=1,s=0;
    cin>>n;
    while(n!=0)
    {
        s++;
        a.push(n);
        cin>>n;
    }
    for(i=1;i<=2;i++)
    {
        cout<<"返回栈顶的元素:"<<a.pop()<<endl;
        cout<<"剩下的元素为:";
        a.output();
        cout<<endl;
    }
    cout<<endl;
    return 0;
}

标签:堆栈,链式存储,C++

收藏

0人收藏

支持

0

反对

0

发表评论