Answer:
static int checkSymbol(char ch)
{
switch (ch)
{
case '+':
case '-':
return 1;
case '*':
case '/':
return 2;
case '^':
return 3;
}
return -1;
}
static String convertInfixToPostfix(String expression)
{
String calculation = new String("");
Stack<Character> operands = new Stack<>();
Stack<Character> operators = new Stack<>();
for (int i = 0; i<expression.length(); ++i)
{
char c = expression.charAt(i);
if (Character.isLetterOrDigit(c))
operands.push(c);
else if (c == '(')
operators.push(c);
else if (c == ')')
{
while (!operators.isEmpty() && operators.peek() != '(')
operands.push(operators.pop());
if (!operators.isEmpty() && operators.peek() != '(')
return NULL;
else
operators.pop();
}
else
{
while (!operators.isEmpty() && checkSymbol(c) <= checkSymbol(operators.peek()))
operands.push(operators.pop());
operators.push(c);
}
}
while (!operators.isEmpty())
operands.push(operators.pop());
while (!operands.isEmpty())
calculation+=operands.pop();
calculation=calculation.reverse();
return calculation;
}
Explanation:
- Create the checkSymbol function to see what symbol is being passed to the stack.
- Create the convertInfixToPostfix function that keeps track of the operands and the operators stack.
- Use conditional statements to check whether the character being passed is a letter, digit, symbol or a bracket.
- While the operators is not empty, keep pushing the character to the operators stack.
- At last reverse and return the calculation which has all the results.
Answer:
#include <iostream>
using namespace std;
int main(){
int a, b, c;
cout<<"Enter three integers: ";
cin>>a>>b>>c;
if(a<=b && a<=c){
cout<<"Smallest: "<<a; }
else if(b<=a && b<=c){
cout<<"Smallest: "<<b; }
else{
cout<<"Smallest: "<<c; }
return 0;
}
Explanation:
This line declares three integer variables a, b and c
int a, b, c;
This line prompts the user for three integer inputs
cout<<"Enter three integers: ";
This line gets the inputs
cin>>a>>b>>c;
This checks if the first is the smallest
if(a<=b && a<=c){
If yes, it prints the first as the smallest
cout<<"Smallest: "<<a; }
This checks if the second is the smallest
else if(b<=a && b<=c){
If yes, it prints the second as the smallest
cout<<"Smallest: "<<b; }
If the above conditions are not true, then the third number is printed as the smallest
<em> else{</em>
<em> cout<<"Smallest: "<<c;</em>
<em> }</em>
<em />