基本信息
源码名称:C# 计算器源码(栈--实现复杂运算)
源码大小:0.06M
文件格式:.rar
开发语言:C#
更新时间:2017-12-23
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 3 元 
   源码介绍


 //中缀转后缀
        public string Convert(string str)
        {
            str ="#";
            List<char> strJSS = str.ToList();
            string Num = "", HZstr = "";
            int i = 0;
            Stack stack = new Stack();
            while(strJSS[i].ToString()!="#"){
                if (IsYSF(strJSS[i].ToString()))
                {
                    if (stack.Count == 0)
                    {
                        stack.Push(strJSS[i]);
                    }
                    else
                    {
                        if (strJSS[i].ToString() == ")")
                        {
                            var s = "";
                            while (s != "(")
                            {
                                s = stack.Pop().ToString();
                                if (Num != "")
                                {
                                    HZstr = ",";
                                    Num = "";
                                }
                               if(s!="(") HZstr = s;
                            }
                            
                        }
                        else
                        {
                            if (Precedence(stack.Peek().ToString(), strJSS[i].ToString()))
                            {
                                //if (strJSS[i].ToString() == "-" && stack.Peek().ToString() == "-") { stack.Push(" "); }
                                //else { stack.Push(strJSS[i]); }

                                stack.Push(strJSS[i]);
                            }
                            else
                            {
                                HZstr = ",";
                                Num = "";
                                HZstr = stack.Pop();
                                stack.Push(strJSS[i]);
                            }
                        }
                    }
                    
                    if (Num != "")
                    {
                        HZstr = ",";
                        Num = "";
                    }
                }
                else
                {
                    Num = strJSS[i].ToString();
                    HZstr = strJSS[i].ToString();
                }
                i ;
            }
            HZstr = ",";
            while (stack.Count > 0)
            {
                HZstr = stack.Pop();
            }
            HZstr = "#";
            return HZstr;
        }