栈和计算器-描述

普通的我们写出来的2+3运算符号在中间的叫做中缀表达式,通过应用栈转化为后缀表达式,最后通过后缀表达式和应用栈就可以计算出结果了。(博客文章-栈的应用)

class Calculator
{
    private string _expression;
    public MyList<string> _elements;
    private StackList<string> _midStack;
    public MyList<string> _laterString;

    public Calculator() {
        _elements = new MyList<string>(100);
        _midStack = new StackList<string>(100);
        _laterString = new MyList<string>(100);
    }

    //计算表达式
    public string Cal(string expression) {

        this.Clear();//清空那3个线性表
        _expression = expression;
        if (!this.Match()) {
            Console.WriteLine("表达式非法!");
            return "";
        }

        this.TranformMidToLater();
        return this.GoResult();
    }
}


整个计算过程就是:

  1. Match(),匹配计算的元素和检查合法性,例如元素:(、数字、+等;合法性:(后面不能是+号吧?

  2. 中缀表达式转化为后缀表达式。

  3. 利用后缀表达式计算出结构。


首页 我的博客
粤ICP备17103704号