栈实验(顺序结构)

顺序栈实验

用顺序存储方式实现栈

头文件

#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;
}
测试结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值