#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::P rint ()
{
Linknode *p = m_top;
while (p)
{
cout<<p->m_value<< "";
p = p->m_next;
}
cout<<endl;
}
void Linkstack::P ush (int v)
{
Linknode *p = new Linknode (v);
P->m_next = M_top;
M_top = p;
m_size++;
}
void Linkstack::P op ()
{
if (! IsEmpty ())
{
Linknode *p = m_top;
M_top = m_top->m_next;
Delete p;
p = NULL;
m_size--
}
}