#include<iostream>
using namespace std;
class LinkNode
{
public:
LinkNode(int v):m_value(v),m_next(NULL){}
LinkNode():m_next(NULL){}
int m_value;
LinkNode *m_next;
};
class LinkStack
{
public:
LinkStack():m_top(NULL),m_size(0){}
~LinkStack(){Clear();}
void Push(int v);
void Pop();
void Print();
int Size()const{return m_size;}
bool IsEmpty()const{return m_top == NULL ? true : false;}
void Clear();
private:
LinkNode *m_top;
int m_size;
};
void LinkStack::Clear()
{
while(m_top)
{
Pop();
}
m_size=0;
}
void LinkStack::Print()
{
LinkNode *p = m_top;
while(p)
{
cout<<p->m_value<<" ";
p = p->m_next;
}
cout<<endl;
}
void LinkStack::Push(int v)
{
LinkNode *p = new LinkNode(v);
p->m_next = m_top;
m_top = p;
m_size++;
}
void LinkStack::Pop()
{
if(!IsEmpty())
{
LinkNode *p = m_top;
m_top = m_top->m_next;
delete p;
p = NULL;
m_size--;
}
}
数据结构之C++实现链栈(LinkStack)(无主函数)
最新推荐文章于 2023-03-24 10:50:53 发布