- 首页 > it技术 > >
C++|[C++]数据结构(公式化描述的堆栈Stack的简单创建与使用)
//公式化描述的堆栈类Stack
#include
using namespace std;
template
class Stack{
public:
Stack(int MaxStackSize=10);
~Stack(){delete[]stack;
}
bool IsEmpty()const{return top==-1;
}
bool IsFull()const{return top==MaxTop;
}
T Top()const;
Stack& Add(const T& x);
Stack& Delete(T& x);
void Show()const;
private:
int top;
//栈顶
int MaxTop;
//最大栈顶值
T *stack;
//堆栈元素数组
};
class OutOfBounds{
public:
OutOfBounds(){
cout<<"Out Of Bounds!"<
void Stack::Show()const{
for(int i = 0;
i<=top;
i++){
cout<
Stack::Stack(int MaxStackSize){
MaxTop = MaxStackSize -1;
stack = new T[MaxStackSize];
top = -1;
};
//返回栈顶元素
template
T Stack::Top()const{
if(IsEmpty)
throw OutOfBounds();
else return stack[top];
}//添加元素
template
Stack& Stack::Add(const T& x){
if(IsFull()){
throw
NoMem();
}
stack[++top]=x;
return *this;
}//删除元素
template
Stack& Stack::Delete(T& x){
if(IsEmpty()){
throw
OutOfBounds();
}
x=stack[top--];
return *this;
}int main(){
StackmyStack;
myStack.Add(1);
myStack.Add(2);
myStack.Add(3);
myStack.Add(4);
myStack.Show();
return 0;
}
推荐阅读