顺序栈的基本操作实现---入栈、出栈、判断是否为空

顺序栈的基本操作实现---入栈、出栈、判断是否为空

栈本身就比较简单,栈的基本概念推荐文章:http://blog.csdn.net/hguisu/article/details/7674195

实现代码如下:

stack.h 栈的头文件:

#pragma once 
#include <iostream>

#define MAX 10  // 注意没有分号
class stack
{
private:
	int arr[MAX];
	int top;

public:
	stack()   //构造函数
	{
	    top = -1;
	}

	void pop(int val); //入栈
	int push();//出栈
	bool isFull(); //判断是否栈满
	bool isEmpty();//判断是否为空栈


};//有分号

stack.app 栈的子函数文件

#include "stack.h"
using namespace std;

bool stack::isEmpty()
{
	if(top == -1)
	{
		cout <<"is empty" << endl;
		return true;
	}
	else 
		return false;
}

bool stack::isFull()
{
	if(top == MAX)
	{
		cout <<"is full " << endl;
		return true;
	}
	else 
		return false;
}

// 入栈,先判断是否满
void stack::pop(int val)
{
	if(isFull() == 1)
		cout << "have full" << endl;
	else 
	{
		top++;
		arr[top] = val;
		
	}
}

// 出栈,判断是否为空
int stack::push()
{
	if(isEmpty() == 1)
		cout <<"have empty" <<endl;
	else 
	{
		int data = arr[top];
		arr[top] = NULL;
		top--;
		return data;
	}
}

测试文件:
#include "stack.h"
using namespace std;

int main ()
{
	stack test;
	test.isEmpty();

	test.pop(1);
	test.pop(2);
	test.pop(3);
	test.isFull();

	int data1 = test.push ();
	cout <<"出栈数字为" << data1 << endl;

	int data2 = test.push ();
	cout <<"出栈数字为" << data2 << endl;

	system ("pause");
	return 0;

}


  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值