【数据结构】栈(stack)的C++实现

#include <iostream>
using namespace std;

const int MAX=5; //栈中最多保存5个数据
class stack {
public:
 void init(void) { top=0;} //初始化函数
 void push(int x); //入栈函数
 int pop(void); //出栈函数
 int gettop() { return top;} //获取栈顶指针
private:
 int num[MAX]; //存放栈的数组
 int top; //栈顶指针
 bool isfull() {
 return top==MAX?true:false;
 }
 bool isempty() {
 return top==-1?true:false;
 }
};

void stack::push(int x) {
 if(isfull()) {
 cout << "Stack is full!" << endl;
 return;
 };
 num[top]=x;
 top++;
}

int stack::pop(void) {
 top--;
 if(isempty()) {
 cout << "Stack is empty!" << endl;
 return 0;
 };
 return num[top];
}

int main() {
 stack s;
 s.init();
 s.push(1);
 s.push(2);
 s.push(3);
 s.push(4);
 s.push(5);
 for(int i=0; i<3; i++)
 cout << s.pop() << endl;
 cout << endl;

 s.push(3);
 s.push(4);
 s.push(5);
 s.push(6);
 cout << endl;

 for(i=0; i<5; i++)
 cout << s.pop() << endl;
 s.pop();
 return 0;
}
    原文作者:Roc_J
    原文地址: https://www.jianshu.com/p/ed566bc5345f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞