• 数据结构——栈


    一.利用C++、数组实现的栈

    //Mystack.h
    
    #include<iostream>
    using namespace std;
    
    //利用数组容器实现的一个栈
    class Mystack{
    private:
        int MAXSIZE=8;//设定最大容量
        int* a;//引用数组名
        int num;//栈顶在数组中的下标,下标始终指向下一个空位置,亦即使用容量大小
    public:
    
        //构造函数创建数组容器
        Mystack(){
            a = new int[MAXSIZE];
            num = 0;
        }
    
        ~Mystack(){
            delete[] a;
        }
    
        //返回栈顶元素:栈空返回-1
        int top(){
            if (num == 0)
                return -1;
            return a[num - 1];
        }
    
        //弹出栈:栈空返回-1
        int pop(){
            if (num == 0){
                cout << "Empty" << endl;
                return -1;
            }
            num--;
            return a[num];
        }
    
        //将元素压入栈
        void push(int val){
            if (num == MAXSIZE){
                cout << "full" << endl;
                return;
            }    
            a[num] = val;
            num++;
        }
    
        //返回元素个数
        int size(){
            return num;
    
        }
    
        //是否满:1是0否
        bool isFull(){
            if (num == MAXSIZE)
                return true;
            return false;
        }
    
        //是否空:1是0否
        bool isEmpty(){
            if (num == 0)
                return true;
            return false;
        }
    };
    //test.cpp
    
    #include<iostream>
    #include"Mystack.h"
    using namespace std;
    
    //一些函数功能测试
    void main(){
    
        Mystack ms;//创建一个栈
    
    
        cout <<"is Empty? "<< ms.isEmpty() << endl;
    
        cout << "is Full?" << ms.isFull() << endl;
    
        int a[] = { 1, 2, 3, 4, 5 };
        for (int i = 0; i < 5; i++){
            ms.push(a[i]);
        }
        cout  << "is Empty? "<<ms.isEmpty() << endl;
        cout << "have " << ms.size() <<" elements"<< endl;
    
        for (int i = 0; i < 5; i++){
            cout << ms.top() << endl;
            ms.pop();
        }
        
    }
  • 相关阅读:
    查询类里面对象个数
    动手动脑2
    关于随机数的产生-动手动脑1
    单词频率代码测试
    反码补码报告
    动手动脑课上总结
    java开学第一周测试代码
    【P1825】表达式整除
    工程代码の初體驗
    差分:IncDec Sequence 差分数组
  • 原文地址:https://www.cnblogs.com/jizhji/p/5875785.html
Copyright © 2020-2023  润新知