1 #include <iostream> 2 const int MAX=5; 3 using namespace std; 4 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 5 //假定栈中最多保存5个数据 6 7 //定义名为stack的类,其具有栈功能 8 class stack { 9 //数据成员 10 float num[MAX]; //存放栈数据的数组 11 int top; //指示栈顶位置的变量 12 public: 13 //成员函数 14 void init(void) { top=0; } //初始化函数 15 void push(float x) //入栈函数 16 { 17 if (top==MAX){ 18 cout<<"Stack is full !"<<endl; 19 return; 20 }; 21 num[top]=x; 22 top++; 23 } 24 float pop(void) //出栈函数 25 { 26 top--; 27 if (top<0){ 28 cout<<"Stack is underflow !"<<endl; 29 return 0; 30 }; 31 return num[top]; 32 } 33 34 }; 35 int main(int argc, char** argv) { 36 //声明变量和对象 37 int i; 38 float x; 39 stack a,b; //声明(创建)栈对象 40 41 //以下对栈对象初始化 42 a.init(); 43 b.init(); 44 45 //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈对象 46 for (i=1; i<=MAX; i++) 47 a.push(2*i); 48 49 //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示 50 for (i=1; i<=MAX; i++) 51 cout<<a.pop()<<" "; 52 cout<<endl; 53 54 //以下利用循环和push()成员函数将键盘输入的数据依次入b栈 55 cout<<"Please input five numbers."<<endl; 56 for (i=1; i<=MAX; i++) { 57 cin>>x; 58 b.push(x); 59 } 60 61 //以下利用循环和pop()成员函数依次弹出b栈中的数据并显示 62 for (i=1; i<=MAX; i++) 63 cout<<b.pop()<<" "; 64 return 0; 65 }
,便于阅读。