程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 數據結構:stack棧的初始化、入棧、出棧及顯示棧元素

數據結構:stack棧的初始化、入棧、出棧及顯示棧元素

編輯:C++入門知識

[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()<<"  "; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved