再读C++ Primer 写了个小例子——实现stack类的压栈弹栈功能
实现stack类的压栈弹栈功能
#pragma
once
#define MAX 100
template < class T >
class Stack
... {
public:
Stack(void)
...{
top=0;
total=0;
}
~Stack(void)
...{}
void push(T ele)
...{
if(top <MAX && top>=0)
...{
element[total]=ele;
top++;
total++;
}
}
T pop()
...{
return element[top-1];
}
void empty()
...{
top=0;
total=0;
}
void isEmpty()
...{
if(total==0)
cout<<"是空栈!"<<endl;
else
...{
cout<<"不是空栈!"<<endl;
}
}
protected:
T element[MAX];
int top;
int total;
} ;
// test02.cpp : Defines the entry point for the console application.
//
#include " stdafx.h "
#include " Stack.h "
using namespace std;
int _tmain( int argc, _TCHAR * argv[])
... {
int a,b,c;
float a1,b1,c1;
Stack<int> intStack;
cout<<"请输入三个整数"<<endl;
cin>>a>>b>>c;
intStack.push(a);
intStack.push(b);
intStack.push(c);
cout<<"请输入三个浮点数"<<endl;
Stack<float> floatStack;
cin>>a1>>b1>>c1;
floatStack.push(a1);
floatStack.push(b1);
floatStack.push(c1);
cout<<"判断是否为空:"<<endl;
floatStack.isEmpty();
cout<<"pop操作:"<<endl;
cout<<floatStack.pop()<<endl;
cin>>a1;
return 0;
}
#define MAX 100
template < class T >
class Stack
... {
public:
Stack(void)
...{
top=0;
total=0;
}
~Stack(void)
...{}
void push(T ele)
...{
if(top <MAX && top>=0)
...{
element[total]=ele;
top++;
total++;
}
}
T pop()
...{
return element[top-1];
}
void empty()
...{
top=0;
total=0;
}
void isEmpty()
...{
if(total==0)
cout<<"是空栈!"<<endl;
else
...{
cout<<"不是空栈!"<<endl;
}
}
protected:
T element[MAX];
int top;
int total;
} ;
// test02.cpp : Defines the entry point for the console application.
//
#include " stdafx.h "
#include " Stack.h "
using namespace std;
int _tmain( int argc, _TCHAR * argv[])
... {
int a,b,c;
float a1,b1,c1;
Stack<int> intStack;
cout<<"请输入三个整数"<<endl;
cin>>a>>b>>c;
intStack.push(a);
intStack.push(b);
intStack.push(c);
cout<<"请输入三个浮点数"<<endl;
Stack<float> floatStack;
cin>>a1>>b1>>c1;
floatStack.push(a1);
floatStack.push(b1);
floatStack.push(c1);
cout<<"判断是否为空:"<<endl;
floatStack.isEmpty();
cout<<"pop操作:"<<endl;
cout<<floatStack.pop()<<endl;
cin>>a1;
return 0;
}