zoukankan      html  css  js  c++  java
  • 课程作业五

    题目描述

    • 经过第四次作业,相信大家都对面向对象的分析与设计有了萌芽式的了解。那么本次作业的第一点就是针对第四次作业的完善。请根据第四次作业分析设计的结果进行编码。要求根据设计的类图进行编码,写出实现该程序所需要的类,
    • 学习数据结构栈的知识。

    作业要求

    • 本次作业要求将程序写成.cpp和.h分离的形式
    • 根据设计的类图进行编码,搭建主体框架
    • 本次作业不要求实现核心的算法功能
    • 发表一篇博客,博客内容为:提供本次作业的github链接,对栈的知识学习探索。

    github链接

    对第四次的类做了部分修改

    关于栈的学习

    创造一个栈的类,头文件:

    class MyStack
    {
        public:
            MyStack(int size);//初始化栈,设定栈顶和栈的容量 
            ~MyStack();//析构函数回收空间 
            bool isEmpty();//判断栈是否是空的 
            bool isFull();//判断栈是否满了 
            void clearStack();//清空栈 
            int stackLength();//计算已经有的元素个数 
            bool push(char elem);//入栈 
            bool pop(char &elem);//出栈 
            void stackTraverse();//遍历 
        private:
            char *m_pBuffer;//栈空间指针 
            int iSize;//栈容量 
            int iTop;//栈顶 
    } ;

    函数实现:

    1.构造函数和析构函数

    MyStack::MyStack(int size){
        iSize=size;
        m_pBuffer=new char[size];
        iTop=0;//表明当前栈为空栈 
    } 
    MyStack::
    ~MyStack(){ delete []m_pBuffer; }

    2.判断栈是否满或者空

    bool MyStack::isEmpty(){
        if(0==iTop)//提高代码质量,误输入成“=”时会报错 
        return true; 
        else return false;
    }
    bool MyStack::isFull(){
        if(iTop>=iSize) return true;
        else return false;
    } 

     3.清空栈

    void MyStack::clearStack(){
        iTop=0;//表明栈中的所有值无效 
    }

    4.返回当前元素个数

    int MyStack::stackLength(){
        return iTop;
    }

    5.入栈

    bool MyStack::push(char elem){
        if(!isFull())//如果栈没有满
        {
             m_pBuffer[iTop]=elem;
             iTop++;
             return true;
        } 
        else return false;
    }

    6.出栈

    bool MyStack::pop(char &elem){
        if(!isEmpty)//如果栈不是空的
      {
            iTop--;
            elem=m_pBuffer[iTop];
            return true;
        }
    }

    7.遍历

    void MyStack::stackTraverse(){
        for(int i=0;i<iTop;i++){//从头到尾遍历 
            cout<<m_pBuffer[i]<<endl;
        }
        /* 
        for(int i=iTop-1;i>=0;i--){//从尾到头遍历 
            cout<<m_pBuffer[i]<<endl;
        }
        */ 
    }
  • 相关阅读:
    inline,inline-block 水平方向无法对齐
    Html语义化标签
    IAP15W4K58S4引脚定义 STC15
    74HC245引脚定义 使用方法
    74HC238引脚定义 使用方法
    HC595驱动数码管
    ICMP重定向 Redirect netwox libpcap netwag
    ARP攻击 winpcap
    打开Visual Studio 2017报错:未能正确加载“VSTS for Database Professionals Sql Server Data-tier Application”包
    dos编码格式 cmd编码 dos中文显示
  • 原文地址:https://www.cnblogs.com/qvq-qvq/p/6896413.html
Copyright © 2011-2022 走看看