顺序栈的基本操作实现---入栈、出栈、判断是否为空
栈本身就比较简单,栈的基本概念推荐文章: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;
}