#include<iostream>
using namespace std ;
template<class type>
class lineStack
{
private:
type* base;
type* top ;
int stackSize;
public:
lineStack();
~lineStack();
bool push(type e);
void pop(type &e);
int size();
bool empty();
};
template<class type>
lineStack<type>::lineStack()
{
stackSize = 100 ;
base = new type[stackSize];
top = base ;
}
template<class type>
lineStack<type>::~lineStack()
{
delete []base ;
}
template<class type>
bool lineStack<type>::push(type e)
{
*top = e ;
top ++ ;
return true;
}
template<class type>
void lineStack<type>::pop(type &e)
{
if(top-base>0)
{
top-- ;
e = *top;
}
}
template<class type>
int lineStack<type>::size()
{
return top-base ;
}
template<class type>
bool lineStack<type>::empty()
{
if(top-base==0)
{
return true;
}
else
{
return false ;
}
}
int main ()
{
lineStack<int> st ;
for(int i = 0;i<10;i++)
{
st.push(i);
}
cout<<"栈的长度为:"<<st.size()<<endl;
int e;
for(int i = 0;i<10;i++)
{
st.pop(e);
cout<<e<<" ";
}
cout << endl ;
system("pause");
}
using namespace std ;
template<class type>
class lineStack
{
private:
type* base;
type* top ;
int stackSize;
public:
lineStack();
~lineStack();
bool push(type e);
void pop(type &e);
int size();
bool empty();
};
template<class type>
lineStack<type>::lineStack()
{
stackSize = 100 ;
base = new type[stackSize];
top = base ;
}
template<class type>
lineStack<type>::~lineStack()
{
delete []base ;
}
template<class type>
bool lineStack<type>::push(type e)
{
*top = e ;
top ++ ;
return true;
}
template<class type>
void lineStack<type>::pop(type &e)
{
if(top-base>0)
{
top-- ;
e = *top;
}
}
template<class type>
int lineStack<type>::size()
{
return top-base ;
}
template<class type>
bool lineStack<type>::empty()
{
if(top-base==0)
{
return true;
}
else
{
return false ;
}
}
int main ()
{
lineStack<int> st ;
for(int i = 0;i<10;i++)
{
st.push(i);
}
cout<<"栈的长度为:"<<st.size()<<endl;
int e;
for(int i = 0;i<10;i++)
{
st.pop(e);
cout<<e<<" ";
}
cout << endl ;
system("pause");
}