自己写的一个模板栈的头文件

来源:互联网 发布:埃米纳姆 知乎 编辑:程序博客网 时间:2024/05/02 01:37

感觉还是可以的

#include <cstdio>#include <iostream>using namespace std;#pragma oncetemplate <typename T>class STACK {    public:        STACK(int capacity);        ~STACK();        bool IsEmpty();        bool IsFull();        bool Push(T data);        bool Pop(T* pointer);        T GetTop();        bool Clear();     private:        T* m_pointer;        int top;        int m_capacity;};template <typename T>STACK<T>::STACK(int capacity) {    this->top=-1;    m_pointer = new T [capacity];    m_capacity=capacity;}template <typename T>bool STACK<T>::Clear() {    this->top=-1;}template <typename T>STACK<T>::~STACK() {    this->Clear();    delete [] m_pointer;}template <typename T>bool STACK<T>::IsEmpty() {    if(this->top==-1)        return true;    return false;}template <typename T>bool STACK<T>::IsFull() {    if(this->top==m_capacity-1)        return true;    return false;}template <typename T> T STACK<T>::GetTop() {    return m_pointer[top];}template <typename T>bool STACK<T>::Pop(T* pointer) {    if(this->IsEmpty()) return false;    if(NULL!=pointer)     *pointer=m_pointer[top];    top--;    return true;}template <typename T>bool STACK<T>::Push(T data) {    if(IsFull()) return false;    top++;    m_pointer[top]=data;    return true;} 
1 0
原创粉丝点击