code for conversion of Infix to Postfix expression in JavaScript.
<!DOCTYPE html>
<html>
<head>
<title>Infix to Postfix</title>
</head>
<body >
//script
<script language="JavaScript">
//globale declaration of stack
var stackArr=[];
var top_stack=-1;
//push function
function push_stack(ele)
{
stackArr[++top_stack]=ele;
}
//pop function
function pop_stack()
{
return(stackArr[top_stack--]);
}
//return top element of a stack
function topStack(stackArr)
{
return(stackArr[stackArr.length-1]);
}
//checking is operator
function isOperator(who)
{
switch(who){
case "^":
case "*":
case "/":
case "+":
case "-":
case ")":
case "(":
return 1;
default: return 0;
}
}
//checking precidence of the operator
function prcd(op)
{
switch(op){
case "^":
case "$":
return 4;
case "*":
case "/":
return 3;
case "+":
case "-":
return 2;
case "(":
case ")":
case "#":
return 1;
default: return 0;
}
}
//convert infix to postfix
function InfixToPostfix(){
var postfix=new Array();
stackArr=[];
push_stack("#");
var ptr=0;
infi=document.getElementById("infix").value;
infi=infi.split("");
var ch;
for(var i=0;i<infi.length;i++){
ch=infi[i];
if(isOperator(ch)==0){
postfix[ptr++]=ch;
}
else
{
if(ch==")")
{
while(stackArr[top_stack]!="(" )
{
postfix[ptr++]=pop_stack();
}
pop_stack();
}
else{
if(ch=="(")
{
push_stack(ch);
}
else
{
if(prcd(ch)>prcd(stackArr[top_stack]))
{
push_stack(ch);
}
else
{
while((prcd(ch)<=prcd(stackArr[top_stack]) && top_stack>-1))
{
postfix[ptr++]=pop_stack();
}
push_stack(ch);
}
}
}
}
}
while(stackArr[top_stack]!="#"){
postfix[ptr++]=pop_stack();
}
document.getElementById("postfix").value=postfix.join("");
}
</script>
// html for design
<span class="header">Infix to Postfix Conversion</span>
<form name="input_form">
<table >
<tr >
<td >Infix Expression :</td>
<td><input type="button" onclick="InfixToPostfix()" id="submit" value="Infix to Postfix" class="button"></td>
</tr>
<tr>
<td><input type="text" name="infixVal" id="infix" class="text_box" ></td>
<td><input type="text" name="postfixVal" id="postfix" class="text_box" value=""></td>
</tr>
</table>
</form>
</body>
</html>