#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next;
};
class LinkStack
{
private:
Node *top;
public:
LinkStack();
~LinkStack();
void Push(int i);
int Pop();
int GetTop();
void StackTrav();
};
LinkStack::LinkStack()
{
top = NULL;
}
LinkStack::~LinkStack()
{
Node *p ;
while(top)
{
p = top;
top = top->next;
delete p;
}
top = NULL;
}
void LinkStack::Push(int i)
{
Node *s = new Node();
s->data = i;
s->next = top;
top = s;
}
int LinkStack::Pop()
{
if(top == NULL)
throw "下溢";
Node *p = top;
int m = top->data;
top = top->next;
delete p;
return m;
}
void LinkStack::StackTrav()
{
Node *p = top;
while(p)
{
cout<<p->data<<" ";
p = p->next;
}
cout<<endl;
}
int LinkStack::GetTop()
{
return top->data;
}
int main()
{
LinkStack *stack = new LinkStack();
for(int i=0;i<10;i++)
{
stack->Push(i);
}
stack->StackTrav();
stack->Pop();
stack->StackTrav();
cout<<stack->GetTop();
system("pause");
}
c++ 栈的链式表示
最新推荐文章于 2020-09-02 17:13:23 发布