顺序栈实验
用顺序存储方式实现栈
头文件
#pragma once
const int STACKSIZE = 10;
class Stack
{
public:
Stack() { top = -1; };//构造函数,初始化一个空栈
~Stack() {};//析构函数
void push(int x);//压栈
void pop();//弹栈
int getTop();//取栈顶元素,不弹栈
bool empty();//判断栈是否为空
private:
int data[STACKSIZE];//存放栈的数组
int top;//栈顶元素的下标
};
源文件
#include "Stack.h"
void Stack::push(int x) {
if (top == STACKSIZE - 1)throw"上溢";
data[++top] = x;
}
void Stack::pop() {
if (top == -1)throw"下溢";
top--;
}
int Stack::getTop() {
return data[top];
}
bool Stack::empty() {
if (top == -1)return true;
return false;
}
测试程序
#include<iostream>
using namespace std;
#include"Stack.h"
int main() {
Stack st;
cout <<"判断栈是否为空:"<< st.empty()<<endl;
//入栈三个元素
st.push(5);
st.push(2);
st.push(0);
cout << "取栈顶元素:" << st.getTop() << endl;
st.pop();
cout << "再取一次栈顶元素:" << st.getTop() << endl;
cout << "再次判断栈是否为空:" << st.empty() << endl;
}