var Stack = function(){} Stack.prototype={ Init:function(){ this.STACKMAX = 100; this.stack = new Array(this.STACKMACK); this.top = -1; return this.stack; }, isEmpty:function(){ if(this.top==-1){ return true; } else{ return false; } }, push:function(elem){ if(this.top==this.STACKMAX-1){ return "栈满"; } else{ this.top++; this.stack[this.top] = elem; } }, pop:function(){ if(this.top==-1){ return "空栈,无法删除栈顶元素!"; } else{ var x = this.stack[this.top]; this.top--; return x; } }, peek:function(){ if(this.top!=-1){ return this.stack[this.top]; } else{ return "空栈,顶元素无返回值!"; } }, Clear:function(){ this.top=-1; }, Length:function(){ return this.top+1; } } function toRPolish(s){ var list=new Array(); var op=new Stack(); op.Init(); //var num=str.match(/\d+(\.\d+)?/g); var i=0; while(i='0'&&c<='9'){ var s1=s.substr(i); var m=s1.match(/\d+(\.\d+)?/g); if (m.length>0){ s1=m[0]; list.push(s1); } i=i+s1.length; continue; }else if(c=='('){ op.push(c); }else if(c==')'){ var p=op.pop(); while(p!='('){ list.push(p); p=op.pop(); } }else if(c=='+'||c=='-'){ while(!op.isEmpty()&&(op.peek()=='+'||op.peek()=='-'||op.peek()=='×'||op.peek()=='÷')){ list.push(op.pop()); } op.push(c); }else if(c=='×'||c=='÷'){ while(!op.isEmpty()&&(op.peek()=='×'||op.peek()=='÷')){ list.push(op.pop()); } op.push(c); } i++; } while(!op.isEmpty()){ list.push(op.pop()); } return list; } function g(a,b,c){ var v=0; a=parseFloat(a); b=parseFloat(b); switch (c){ case '+': v=floatAdd(a,b); break; case '-': v=floatSub(a,b);; break; case '×': v=floatMul(a,b);; break; case '÷': v=floatDiv(a,b);; break; } return v; } function getResult(list,result){ for (var i=0;i