zoukankan      html  css  js  c++  java
  • 栈这个数据结构又叫做后进先出表,即最后进栈的数据先出栈。

    栈可以由链表或者数组来实现,而在stl中,栈是一个类。

    1 #include<iostream.h>
     2 const int MAX=5;     //假定栈中最多保存5个数据
     3 //定义名为stack的类,其具有栈功能
     4 class stack {
     5     //数据成员
     6     float num[MAX]; //存放栈数据的数组
     7     int top;          //指示栈顶位置的变量
     8 public:
     9     //成员函数
    10     void init(void) { top=0; }    //初始化函数
    11     void push(float x)          //入栈函数
    12     {
    13         if (top==MAX){
    14             cout<<"Stack is full !"<<endl;
    15             return;
    16         };
    17         num[top]=x;
    18         top++;
    19     }
    20     float pop(void)          //出栈函数
    21     {
    22         top--;
    23         if (top<0){
    24         cout<<"Stack is underflow !"<<endl;
    25         return 0;
    26         };
    27         return num[top];
    28     }
    29 }
    30 //以下是main()函数,其用stack类创建栈对象,并使用了这些对象
    31 main(void)
    32 {
    33     //声明变量和对象
    34     int i;
    35     float x;
    36     stack a,b;    //声明(创建)栈对象
    37     //以下对栈对象初始化
    38     a.init();
    39     b.init();
    40     //以下利用循环和push()成员函数将2,4,6,8,10依次入a栈对象
    41     for (i=1; i<=MAX; i++)
    42         a.push(2*i);
    43     //以下利用循环和pop()成员函数依次弹出a栈中的数据并显示
    44     for (i=1; i<=MAX; i++)
    45        cout<<a.pop()<<" ";
    46     cout<<endl;
    47     //以下利用循环和push()成员函数将键盘输入的数据依次入b栈
    48     cout<<"Please input five numbers."<<endl;
    49     for (i=1; i<=MAX; i++) {
    50          cin>>x;
    51          b.push(x);
    52     }
    53 
    54     //以下利用循环和pop()成员函数依次弹出b栈中的数据并显示
    55     for (i=1; i<=MAX; i++)
    56        cout<<b.pop()<<" ";
    57 }
  • 相关阅读:
    惭愧无法面对的SQL ORDER BY
    JVM参数官方说明
    Java Unsafe 测试代码
    好记性不如烂笔头-Duration与Period中字母含义
    计算机组成原理中源码、反码、补码存在意义
    线程池参数、线程池扩容以及拒绝策略触发时机demo代码
    朴素贝叶斯法
    K近邻法与kd树
    EM算法
    熵、交叉熵、KL散度、JS散度
  • 原文地址:https://www.cnblogs.com/yaoyueduzhen/p/4384460.html
Copyright © 2011-2022 走看看