理论基础 —— 栈 —— 双端栈
生活随笔
收集整理的這篇文章主要介紹了
理论基础 —— 栈 —— 双端栈
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【實現類】
const int maxSize=100; template <class T> class seqStack{ public:seqStack();~seqStack();void push(T x);//入棧T pop();//出棧T getTop();//獲取棧頂元素bool empty();//判斷是否為空 private:T data[maxSize];//數據域int top;//棧首指針 };【構造函數】
對于 1 號棧,棧指針設為存儲空間頭部,對于 2 號棧,棧指針設為存儲空間尾部
template <class T> bothStack<T>::bothStack(){top1=-1;top2=maxSize; }【進棧】
【出棧算法】
【判斷棧空】
對于第 i 個棧,要判斷其是否為空,只要判斷其棧頂指針,若 top1=-1 或 top2=maxSize,則棧空
bool bothStack<T>::empty(int i){if(i==1)if(top1==-1)return true;if(i==2)if(top2==maxSize)return true;return false; }【取棧頂元素】
?
總結
以上是生活随笔為你收集整理的理论基础 —— 栈 —— 双端栈的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 棋盘游戏(信息学奥赛一本通-T1451)
- 下一篇: Oulipo(POJ-3461)