zoukankan      html  css  js  c++  java
  • ---恢复内容开始---

    1.栈是一个动态集合。

    2.栈实现的是一种后进先出的策略,即被删除的是最近插入的元素。

    3.基本用法:

    1. push(): 向栈内压入一个成员;
    2. pop(): 从栈顶弹出一个成员;
    3. empty(): 如果栈为空返回true,否则返回false;
    4. top(): 返回栈顶,但不删除成员;
    5. size(): 返回栈内元素的大小。

    4.栈的实现:1.构造模版类

          2.设置数据成员type* //创建一个栈st<

                 int top// 记录栈顶

                 int maxsize//设置栈的最大长度

    #include <iostream>

    #include <cstdlib>

    #define MAXSIZE 100

    using namespace std;

    template <class Type>

    class my_stack {

        int top;

        Type* st;

        int max;

    public:

        my_stack():top(-1),max(MAXSIZE)

        {

            st=new Type[MAXSIZE];

            if (st==NULL) {

                cout << "动态分配内存失败" << endl;

            }

        }

        

        my_stack(int Size):top(-1),max(Size)

        {

            st=new Type[Size];

            if (st==nullptr) {

                cout <<"动态分配内存失败" << endl;

            }

        }

        ~my_stack()

        {

            delete [] st;

        }

        void push(Type a);

        void pop();

        bool empty();

        Type Top();

        int size();

    };

    template<class Type>

    void my_stack<Type>::push(Type a)

    {

        if (top+1<max) {

            st[++top]=a;

        }

        else{

            cout << "栈已经满了";

            exit(1);

        }

    }

    template<class Type>

    void my_stack<Type>::pop()

    {

        if (top>=0) {

            top--;

        }

        else

        {

            cout << "栈空" << endl;

            exit(1);

        }

    }

    template <class Type>

    bool my_stack<Type>::empty()

    {

        if (top!=-1)

        {

            return true;

        }

        else

        {

            return false;

        }

    }

    template <class Type>

    Type my_stack<Type>::Top()

    {

        if (top>=0) {

            return st[top];

        }

        else

        {

            cout << "空表" << endl;

            exit(1);

        }

    }

    template <class Type>

    int my_stack<Type>::size()

    {

        return top+1;

    }

  • 相关阅读:
    20201107
    20201024
    20201020
    20200331
    20200330
    20200320
    20200319
    20200310
    20200221
    20190926
  • 原文地址:https://www.cnblogs.com/zhouqianwei/p/9011372.html
Copyright © 2011-2022 走看看