conversion of Infix to Postfix expression in JavaScript.

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>

Posted on by