为了账号安全,请及时绑定邮箱和手机立即绑定
  • 1
    查看全部
    0 采集 收起 来源:演示代码运行

    2019-04-02

  • MyStack.h

    查看全部
    0 采集 收起 来源:实例介绍

    2019-04-02

  • 栈的类的实现

    查看全部
    0 采集 收起 来源:实例介绍

    2019-04-02

  • 查看全部
    0 采集 收起 来源:实例演示一

    2019-04-01

  • 堆中事例化对象时,类中的构造函数的参数需要有默认值

    查看全部
    0 采集 收起 来源:案例改造

    2019-03-19

  • 析构函数:与构造函数相反,主要在构造函数执行完毕后被自动调用执行善后工作,如释放构造函数开辟的内存,写法与类名相同,前面加~

    查看全部
    0 采集 收起 来源:实例介绍

    2019-03-10

  • 出栈和队列都输入引用

    查看全部
    0 采集 收起 来源:实例演示二

    2019-03-06

  • 出入栈设为bool类型

    查看全部
    0 采集 收起 来源:实例演示二

    2019-03-06

  • 写成0==A容易发现错误

    查看全部
    0 采集 收起 来源:实例演示一

    2019-03-06

  • 栈元素
    查看全部
    0 采集 收起 来源:实例演示一

    2019-01-27

  • 栈是一种机制
    查看全部
    0 采集 收起 来源:栈介绍

    2019-01-27

  • 一个栈就可以了,首先刚开始要入栈,然后接下来将栈顶元素和待匹配的下一个元素比较,如果相等则出栈,不相等则入栈,一直这样下去,直到字符串结束,最后栈中如果有剩余元素,那么就是不匹配

    查看全部
  • int main(void) { MyStack<char> *pStack=new MyStack<char> (30);//用来存放扫描字符串当中所找到的字符 MyStack<char> *pNeedStack=new MyStack<char> (30);//记录栈顶急需的字符 char str[]="[()]]"; char currentNeed=0;//表示当前需要的字符,赋初值用ARIS码 for(int i=0;i<strlen(str);i++) { if(str[i]!=currentNeed) { pStack->push(str[i]); switch(str[i]) { case'[': if(currentNeed!=0) { pNeedStack->push(currentNeed); } currentNeed=']'; break; case'(': if(currentNeed!=0) { pNeedStack->push(currentNeed); } currentNeed=')'; break; default://为了适用于后面有多出来的情况,例如:[()]] cout<<"字符串不匹配"<<endl; return 0; } } else { char elem; pStack->pop(elem); if(!pNeedStack->pop(currentNeed))//判断出栈是否正确,如果栈里没有可pop出的字符就要赋值0 { currentNeed=0; } } } if(pStack->stackEmpty()) { cout<<"字符串括号匹配"<<endl; } else { cout<<"字符串括号不匹配"<<endl; } delete pStack; pStack=NULL; delete pNeedStack; pNeedStack=NULL; return 0; }

    查看全部
  • //在MyStack.h中
    class MyStack{
    public:
        MyStack(int size);
        ~MyStack();
        bool StackEmpty() const;
        bool StackFull() const;
        int StackLength() const;//已有元素个数
        void clearStack();//清空栈
        bool push(char elem);//入栈
        bool pop(char &elem);//出栈,栈顶下降
        void StackTraverse(bool isFromBottom);
    private:
        char *m_pBuffer;//栈空间指针
        int m_iSize;
        int m_iTop;//栈顶,栈中元素个数
    };
    
    //在MyStack.cpp中
    #include "MyStack.h"
    #include <iostream>
    using namespace std;
    
    MyStack::MyStack(int size){
        m_iSize=size;
        m_pBuffer=new char[m_iSize];
        m_iTop=0;
    }
    MyStack::~MyStack(){
        delete []m_pBuffer;
        m_pBuffer=NULL;
    }
    //判断栈空
    bool MyStack::StackEmpty() const{
        if(0==m_iTop){
            return true;
        }
        else{
            return false;
        }
    }
    //判断栈满
    bool MyStack::StackFull() const{
        if(m_iTop==m_iSize){
            return true;
        }
        else{
            return false;
        }
    }
    //已有元素个数
    int MyStack::StackLength() const{
        return m_iTop;
    }
    //清空栈
    void MyStack::clearStack(){
        m_iTop=0;
    }
    //入栈
    bool MyStack::push(char elem){
        if(StackFull()){
            return false;
        }
        else{
            m_pBuffer[m_iTop]=elem;
            m_iTop++;
            return true;
        }
    }
    //出栈
    bool MyStack::pop(char &elem){
        if(StackEmpty()){
            return false;
        }
        else{
            m_iTop--;
            elem=m_pBuffer[m_iTop];
            return true;
        }
    }
    /*出栈还可以这样写,如果返回类型为char
    char MyStack::pop(){
        if(StackEmpty()){
            throw 1;
        }
        else{
            m_iTop--;
            return m_pBuffer[m_iTop];
        }
    }*/
    //遍历
    void MyStack::StackTraverse(bool isFromBottom){
        //isFromBottom=1,从栈底到顶遍历
        if(isFromBottom){
            for(int i=0;i<m_iTop;i++){
                cout<<m_pBuffer[i]<<",";
            }
        }
        //否则,从栈顶到底遍历
        else{
            for(int i=m_iTop-1;i>=0;i--){
                cout<<m_pBuffer[i]<<",";
            }
        }
    }


    查看全部
    0 采集 收起 来源:实例演示二

    2018-12-30

  • 【栈】后进先出Last in First out(LIFO)

    查看全部
    0 采集 收起 来源:栈介绍

    2018-12-30

举报

0/150
提交
取消
课程须知
"本课程是数据结构初级课程 1、熟练掌握C++语言基础语法"
老师告诉你能学到什么?
1、栈的工作原理 2、栈的实现方法及编码技巧 3、栈模板的编码技巧和使用技巧 4、数制转换编程思路及栈的作用 5、括号匹配编程思路及栈的作用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!