代码
#include "stdafx.h"
#include<iostream>
#include<vector>
using namespace std;
#define NUM 5
class ArrayStack
{
public:
ArrayStack(int N);
~ArrayStack();
void push(int element);
int pop();
int peek();
void printStack();
private:
int *array;
int N;
int index;
};
ArrayStack::ArrayStack(int N)
{
this->N = N;
array =new int[N];
index = 0;
}
ArrayStack::~ArrayStack()
{
delete[] this->array;
}
void ArrayStack:: push(int element)
{
if (index == N)
cout << " the atack is full" << endl;
else
array[index++] = element;
}
int ArrayStack::pop()
{
if (index == 0)
cout << " the stack is empty " << endl;
else
return array[--index];
}
int ArrayStack::peek()
{
if (index == 0)
return -1;
else
return array[index - 1];
}
void ArrayStack::printStack()
{
for (int i = 0; i < N; i++)
{
cout << array[i] << " ";
}
cout << endl;
}
int main()
{
ArrayStack mystack(NUM);
mystack.push(1);
mystack.push(2);
mystack.push(3);
mystack.push(4);
mystack.push(15);
mystack.printStack();
for(int i=0;i<NUM;i++)
{
cout<<"pop = "<<mystack.pop()<<endl;
cout<<"peek = "<<mystack.peek()<<endl;
cout<<endl;
}
mystack.printStack();
return 0;
}