第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

具體實(shí)現(xiàn)代碼@數(shù)據(jù)結(jié)構(gòu)探險(xiǎn)——棧篇 3-2

標(biāo)簽:
C++
file:MyStack.hpp
#ifndef MyStack_hpp
#define MyStack_hpp

#include <iostream>

using namespace std;

template <class T>
class MyStack{
public:
    MyStack(int size);
    ~MyStack();
    bool stackFull();
    bool stackEmpty();
    void clearStack();
    int stackLength();
    bool push(T elem);
    bool pop(T &elem);
    void stackTraverse(bool isFromBottom);
private:
    T *m_pBuffer;
    int m_iSize;
    int m_iTop;

};

template <class T>
MyStack<T>::MyStack(int size){
    m_iSize = size;
    m_pBuffer = new T[m_iSize];
    m_iTop = 0;
}

template <class T>
MyStack<T>::~MyStack(){
    delete []m_pBuffer;
    m_pBuffer = NULL;
}

template <class T>
bool MyStack<T>::stackFull(){
    return m_iTop==m_iSize?true:false;
}

template <class T>
bool MyStack<T>::stackEmpty(){
    return m_iTop==0?true:false;
}

template <class T>
void MyStack<T>::clearStack(){
    m_iTop = 0;
}

template <class T>
int MyStack<T>::stackLength(){
    return m_iTop;
}

template <class T>
bool MyStack<T>::push(T elem){
    if(stackFull()){
        return false;
    }
    else{
        m_pBuffer[m_iTop] = elem;
        m_iTop++;
        return true;
    }
}

template <class T>
bool MyStack<T>::pop(T &elem){
    if(stackEmpty()){
        return false;
    }
    else{
        m_iTop--;
        elem = m_pBuffer[m_iTop];
        return true;
    }

}

template <class T>
void MyStack<T>::stackTraverse(bool isFromBottom){
    if(isFromBottom){
        for(int i =0;i < m_iTop;i++) {
            cout << m_pBuffer[i] << endl;
        }
    }
    else{
        for(int i = m_iTop-1;i >=0;i--){
            cout << m_pBuffer[i] << endl;
        }
    }
}

#endif /* MyStack_hpp */
file:MyStack.cpp
file:Coordinate.hpp

#ifndef Coordinate_hpp
#define Coordinate_hpp

#include <ostream>
using namespace std;

class Coordinate{
public:
    friend ostream &operator<<(ostream &out,Coordinate &coor);

    Coordinate(int x = 0 ,int y = 0);
    void printCoordinate();

private:
    int m_iX;
    int m_iY;
};

#endif /* Coordinate_hpp */
file:Coordinate.cpp

#ifndef Coordinate_hpp
#define Coordinate_hpp

#include <ostream>
using namespace std;

class Coordinate{
public:
    friend ostream &operator<<(ostream &out,Coordinate &coor);

    Coordinate(int x = 0 ,int y = 0);
    void printCoordinate();

private:
    int m_iX;
    int m_iY;
};

#endif /* Coordinate_hpp */
file:demo.cpp

#include <iostream>
#include <string>
#include "MyStack.hpp"
#include "Coordinate.hpp"

using namespace std;

int main(void){
    MyStack<Coordinate> *pStack = new MyStack<Coordinate>(5);

    Coordinate coor1(1,2);
    Coordinate coor2(2,3);
    Coordinate coor3(3,4);
    Coordinate coor4(4,5);
    Coordinate coor5(5,6);

    pStack->push(coor1);
    pStack->push(coor2);
    pStack->push(coor3);
    pStack->push(coor4);
    pStack->push(coor5);

    pStack->stackTraverse(true);

    Coordinate elem(0,0);
    pStack->pop(elem);
    elem.printCoordinate();

    cout << pStack->stackLength() << endl;

    pStack->stackTraverse(true);

    pStack->clearStack();

    if(pStack->stackEmpty()){
        cout << "栈为空" << endl;
    }

    if(pStack->stackFull()){
        cout << "栈为满" << endl;
    }

    delete pStack;
    pStack = NULL;

}
點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消