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