栈的基本操作

来源:互联网 发布:linux cron命令每周三 编辑:程序博客网 时间:2024/06/08 17:48
//C++面向对象实现栈的基本操作(数组)#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;//typedef int data;class Stack{private:    int top;    int maxsize;    int  * list;public:    //构造函数初始化栈;    Stack()     {        maxsize = 1000;        int top = 0;        list = new int [maxsize];    }    Stack(int sz)    {        if (sz > 0)            maxsize = sz;        else            maxsize = 1000;        top = 0;        list = new int [maxsize];    }    //入栈操作;    void push(const int & it)    {   list[top++] = it; }    //出栈操作;    int pop()    {   return list[--top];}    //得到栈顶元素;    int top_value()const    {   return list[top - 1];}    //栈内元素数量;    int length()    {   return top;}};int main() {    Stack s;//创建一个对象;    int n,i;    cin >> n;    for( i=1;i<=n;i++)    {        s.push(i);    }    cout << s.length() << endl;    for ( i = 1; i<=n; i++)    {        if (i == n )            cout<< s.pop() << endl;        else            cout<<s.pop()<<" ";    }    cout << s.length() << endl;//输出栈内元素的数量;    return 0;}