Saltar al contenido

infijo a postfijo usando pila en el ejemplo de código java

Nuestro equipo de expertos pasados varios días de investigación y recopilar de información, encontramos la solución, nuestro deseo es que te sea útil para tu plan.

Ejemplo: Infijo para postfijar la conversación usando la pila

/*
  Infix to postfix conversion in C++ 
  Input Postfix expression must be in a desired format. 
  Operands and operator, both must be single character.
  Only '+'  ,  '-'  , '*', '/' and '$' (for exponentiation)  operators are expected. 
*/#include#include#includeusingnamespace std;// Function to convert Infix expression to postfix 
string InfixToPostfix(string expression);// Function to verify whether an operator has higher precedence over otherintHasHigherPrecedence(char operator1,char operator2);// Function to verify whether a character is operator symbol or not. boolIsOperator(char C);// Function to verify whether a character is alphanumeric chanaracter (letter or numeric digit) or not. boolIsOperand(char C);intmain()
	string expression; 
	cout<<"Enter Infix Expression n";getline(cin,expression);
	string postfix =InfixToPostfix(expression);
	cout<<"Output = "<<postfix<<"n";// Function to evaluate Postfix expression and return output
string InfixToPostfix(string expression)// Declaring a Stack from Standard template library in C++. 
	stack<char> S;
	string postfix ="";// Initialize postfix as empty string.for(int i =0;i< expression.length();i++)while(!S.empty())
		postfix += S.top();
		S.pop();return postfix;// Function to verify whether a character is english letter or numeric digit. // We are assuming in this solution that operand will be a single characterboolIsOperand(char C)if(C >='0'&& C <='9')returntrue;if(C >='a'&& C <='z')returntrue;if(C >='A'&& C <='Z')returntrue;returnfalse;// Function to verify whether a character is operator symbol or not. boolIsOperator(char C)// Function to verify whether an operator is right associative or not. intIsRightAssociative(char op)if(op =='$')returntrue;returnfalse;// Function to get weight of an operator. An operator with higher weight will have higher precedence. intGetOperatorWeight(char op)int weight =-1;switch(op)case'+':case'-':
		weight =1;case'*':case'/':
		weight =2;case'$':
		weight =3;return weight;// Function to perform an operation and return output. intHasHigherPrecedence(char op1,char op2)int op1Weight =GetOperatorWeight(op1);int op2Weight =GetOperatorWeight(op2);// If operators have equal precedence, return true if they are left associative. // return false, if right associative. // if operator is left-associative, left one should be given priority. if(op1Weight == op2Weight)if(IsRightAssociative(op1))returnfalse;elsereturntrue;return op1Weight > op2Weight ?true:false;

Reseñas y calificaciones

Tienes la posibilidad recomendar esta sección si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *