[cpp]
#include<iostream.h>
const int MAX=5; //假定棧中最多保存5個數據
//定義名為stack的類,其具有棧功能
class stack {
//數據成員
float num[MAX]; //存放棧數據的數組
int top; //指示棧頂位置的變量
public:
//成員函數
void init(void) { top=0; } //初始化函數
void push(float x) //入棧函數
{
if (top==MAX){
cout<<"Stack is full !"<<endl;
return;
};
num[top]=x;
top++;
}
float pop(void) //出棧函數
{
top--;
if (top<0){
cout<<"Stack is underflow !"<<endl;
return 0;
};
return num[top];
}
}
//以下是main()函數,其用stack類創建棧對象,並使用了這些對象
main(void)
{
//聲明變量和對象
int i;
float x;
stack a,b; //聲明(創建)棧對象
//以下對棧對象初始化
a.init();
b.init();
//以下利用循環和push()成員函數將2,4,6,8,10依次入a棧對象
for (i=1; i<=MAX; i++)
a.push(2*i);
//以下利用循環和pop()成員函數依次彈出a棧中的數據並顯示
for (i=1; i<=MAX; i++) www.2cto.com
cout<<a.pop()<<" ";
cout<<endl;
//以下利用循環和push()成員函數將鍵盤輸入的數據依次入b棧
cout<<"Please input five numbers."<<endl;
for (i=1; i<=MAX; i++) {
cin>>x;
b.push(x);
}
//以下利用循環和pop()成員函數依次彈出b棧中的數據並顯示
for (i=1; i<=MAX; i++)
cout<<b.pop()<<" ";
}