Chinaunix首页 | 论坛 | 博客
  • 博客访问: 192978
  • 博文数量: 11
  • 博客积分: 1420
  • 博客等级: 上尉
  • 技术积分: 490
  • 用 户 组: 普通用户
  • 注册时间: 2005-05-23 11:41
文章分类

全部博文(11)

文章存档

2010年(1)

2009年(1)

2008年(9)

我的朋友

分类: C/C++

2008-08-15 18:11:29

#include
const int MAX=5;     //假定栈中最多保存5个数据
//定义名为stack的类,其具有栈功能
class  stack
{
    //数据成员
    float  num[MAX];  //存放栈数据的数组
    int  top;          //指示栈顶位置的变量
public:
    //成员函数
    void init()
  {
   top=0;
  }    //初始化函数
    void push(float x)          //入栈函数
    {
        if (top==MAX)
    {
            cout<<"Stack is full !"<            return;
        }
        num[top]=x;
        top++;
    }
    float pop(void)          //出栈函数
    {
        top--;
        if (top<0)
    {
         cout<<"Stack is underflow !"<         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++)
       cout<    cout<
    //以下利用循环和push()成员函数将键盘输入的数据依次入b栈
    cout<<"Please input five numbers."<    for (i=1; i<=MAX; i++)
   {
         cin>>x;
         b.push(x);
    }
 
    //以下利用循环和pop()成员函数依次弹出b栈中的数据并显示
    for (i=1; i<=MAX; i++)
       cout<}
阅读(3739) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~