?? stack.h
字號:
#include <assert.h>
template <class Type> class Stack
{
public:
Stack (int=50);
~Stack() {delete [] elements;}
void Push( const Type &item);
Type Pop();
Type GetTop();
void MakeEmpty() {top=-1;}
int IsEmpty() const {return top==-1;}
int IsFull() const {return top==maxSize-1;}
private:
int top;//在順序存儲分配下是棧頂指針
Type *elements;//在順序存儲分配下是存放棧中元素的棧數組
int maxSize;//棧最大可容納元素個數
};
template <class Type> Stack <Type>::Stack(int s):top(-1),maxSize(s)
//建立一個最大尺寸為s的空棧,若分配不成功則錯誤處理
{
elements=new Type[maxSize];//創建棧空間
assert(elements!=0);//斷言:動態存儲分配成功與否
}
template <class Type> void Stack <Type>::Push (const Type &item)
//若棧 不滿,則將元素item插入到該棧的棧頂,否則出錯處理
{
assert(!IsFull());//斷言:棧不滿則繼續執行
elements[++top]=item;//棧頂指針現加1,然后按此地址進棧
}
template <class Type> Type Stack <Type>::Pop()
//若棧不為空則函數返回該棧頂元素的地址,然后棧頂指針退1
{
assert(!IsEmpty());//斷言:判棧空否,若斷言成立則繼續執行
return elements[top--];//返回棧頂元素的值,同時棧頂指針退1
}
template <class Type> Type Stack <Type>::GetTop()
//若棧不為空則函數返回該棧棧頂元素的地址
{
assert(!IsEmpty());//斷言:判棧為空,若斷言成立則繼續執行
return elements[top];//返回棧頂元素的值
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -