栈(顺序存储)C++模板实现
生活随笔
收集整理的這篇文章主要介紹了
栈(顺序存储)C++模板实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream>
using namespace std;template <typename T>
class stack{private:int top; //棧頂指針int maxLen; //棧最大長度T *data; //用數組來創建棧public:stack(int top_ = -1 , int maxLen_ = 10):top(top_),maxLen(maxLen_){data = new T[maxLen]; //長度為maxLen的動態數組}~stack(){delete [] data; //釋放動態數組}void Push(T x); //將x推進棧void Pop(); //推出棧頂元素T getPeek(); //讀棧頂元素bool isEmpty(); //判斷棧是否為空bool isFull(); //判斷棧是否滿void printAll(); //打印整個棧
};template <typename T>
void stack<T>::Push(T x){ //將x推進棧,實現部分if(isFull())return;top++;data[top] = x;
}template <typename T>
void stack<T>::Pop(){ //推出棧頂元素,實現部分if(isEmpty())return;top--;
}template <typename T>
T stack<T>::getPeek(){ //獲得棧頂元素,實現部分if(isEmpty())return;return data[top];
}template <typename T>
bool stack<T>::isEmpty(){ //判斷棧是否為空,實現部分return top==-1;
}template <typename T>
bool stack<T>::isFull(){ //判斷棧是否滿,實現部分return top==maxLen-1;
}template <typename T>
void stack<T>::printAll(){ //打印棧內元素,實現部分if(isEmpty())return;for(int i = 0; i <=top ; i++){cout<<data[i]<<endl;}
}
void main(){stack<int> a; //創建元素類型為int的棧對象a.Push(1); //將1推進棧a.Push(2); //將2推進棧a.Push(3); //將3推進棧a.Push(4); //將4推進棧a.Push(5); //將5推進棧a.Pop(); //彈出棧頂元素a.printAll(); //打印棧內元素
}
轉載于:https://www.cnblogs.com/xiaogua918/p/4181589.html
總結
以上是生活随笔為你收集整理的栈(顺序存储)C++模板实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统目录数和文件数限制
- 下一篇: C/C++ 中变量的声明、定义、初始化的