Stack

简单版 Stack
Stack.h

#pragma once
template<class T>
class stack {
public:
    stack();
    ~stack();

    bool empty();
    T pop();
    bool push(const T);

private:
    T* data;
    int top;

};

Stack.cpp

#include"Stack.h"
#include<iostream>
const int N = 100;
template<class T>
stack<T>::stack():top(0),data(new T[N]){}

template<class T>
stack<T>::~stack() {
    delete[] data;
}

template<class T>
bool stack<T>::empty() {
    if (top < 1)
        return true;
    else return false;
}
template<class T>
bool stack<T>::push(const T elem) {
    if (top < N) {
        data[top] = elem;
        ++top;
        return true;
    }
    return false;
}
template<class T>
T stack<T>::pop() {
    if (empty()) {
        std::cout << "underflow" << std::endl;
        return T();
    }
    return data[--top];
}
// *****************************      text          ******************************
/*
int main() {
    stack<int> text;
    std::cout << "empty?:" << text.empty() << std::endl;
    text.push(1);
    text.push(15);
    text.push(6); 
    text.push(66); 
    text.push(8);

    std::cout <<"empty?:"<< text.empty() << std::endl;

    std::cout << "pop:" << text.pop() << std::endl;
    std::cout << "pop:" << text.pop() << std::endl; 
    std::cout << "pop:" << text.pop() << std::endl;
    std::cout << "pop:" << text.pop() << std::endl;
    std::cout << "pop:" << text.pop() << std::endl;

    std::cout << "empty?:" << text.empty() << std::endl;
}
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值