zoukankan      html  css  js  c++  java
  • 计算后缀表达式的值

    在上一篇随笔中已经知道如何将中缀表达式转换为后缀表达式,那么如何由后缀表达式计算出值呢?

    //操作数栈
    typedef struct {
        int data[MAXSIZE];
        int top;
    } ST;
    
    ST st;
    
    
    //计算后缀表达式的值
    int compvalue(char postexp[]) {
        st.top=-1;
        int d=0;
        int i=0,j=0;
        char ch = postexp[i];
    
        while(ch!='') {
            switch(ch) {
                case '+': {
                    st.data[st.top-1]=st.data[st.top-1]+st.data[st.top];
                    st.top--;
                    break;
                }
                case '-': {
                    st.data[st.top-1]=st.data[st.top-1]-st.data[st.top];
                    st.top--;
                    break;
                }
                case '*': {
                    st.data[st.top-1]=st.data[st.top-1]*st.data[st.top];
                    st.top--;
                    break;
                }
                case '/': {
                    st.data[st.top-1]=st.data[st.top-1]/st.data[st.top];
                    st.top--;
                    break;
                }
                case ' ':
                    break;
                default: {
                    d=0;
                    while(ch>='0'&&ch<='9') {
                        d=d*10+ch-'0';
                        i++;
                        ch=postexp[i];
                    }
                    st.top++;
                    st.data[st.top]=d;
                    break;
                }
            }
            i++;
            ch=postexp[i];
    
        }
        return st.data[st.top];
    }
  • 相关阅读:
    无向图最小割Stoer-Wagner算法学习
    centos7下opencv的安装
    problems when installed mysql in linux ubuntu
    gcc内嵌汇编
    python第三方库镜像地址
    docker命令
    搭建小型web服务
    装饰器
    docker-influxdb
    shell基础命令
  • 原文地址:https://www.cnblogs.com/hekuiFlye/p/9390167.html
Copyright © 2011-2022 走看看