please need help with this exercise data structure i should

please need help with this exercise data structure:

i should use the below code for infix to postfix code and i should add the bellow question to the code. so that way it works all together on the same program from the infix to postfix

questions:

A = 3; // your code should store A and 3 as a key-value pair
B = 4; // your code should store B and 4 as a key-value pair
A; // your code should now look-up A and then display its value

later we (you) will add the ability to write

Y = A * B + 3;

Y; // your code should show 16

the code:

import java.io.*; // for I/O

////////////////////////////////////////////////////////////////

class StackX {

      private int maxSize;

      private char[] stackArray;

      private int top;

      // --------------------------------------------------------------

      public StackX(int s) // constructor

      {

            maxSize = s;

            stackArray = new char[maxSize];

            top = -1;

      }

      // --------------------------------------------------------------

      public void push(char j) // put item on top of stack

      {

            stackArray[++top] = j;

      }

      // --------------------------------------------------------------

      public char pop() // take item from top of stack

      {

            return stackArray[top--];

      }

      // --------------------------------------------------------------

      public char peek() // peek at top of stack

      {

            return stackArray[top];

      }

      // --------------------------------------------------------------

      public boolean isEmpty() // true if stack is empty

      {

            return (top == -1);

      }

      // -------------------------------------------------------------

      public int size() // return size

      {

            return top + 1;

      }

      // --------------------------------------------------------------

      public char peekN(int n) // return item at index n

      {

            return stackArray[n];

      }

      // --------------------------------------------------------------

      public void displayStack(String s) {

            System.out.print(s);

            System.out.print(\"Stack (bottom-->top): \");

            for (int j = 0; j < size(); j++) {

                  System.out.print(peekN(j));

                  System.out.print(\' \');

            }

            System.out.println(\" \");

      }

      // --------------------------------------------------------------

} // end class StackX

      ////////////////////////////////////////////////////////////////

class InToPost // infix to postfix conversion

{

      private StackX theStack;

      private String input;

      private String output = \"\";

      // --------------------------------------------------------------

      public InToPost(String in) // constructor

      {

            input = in;

            int stackSize = input.length();

            theStack = new StackX(stackSize);

      }

      // --------------------------------------------------------------

      public String doTrans() // do translation to postfix

      {

            for (int j = 0; j < input.length(); j++) {

                  char ch = input.charAt(j);

                  theStack.displayStack(\"For \" + ch + \" \"); // *diagnostic*

                  switch (ch) {

                  case \'+\': // it’s + or -

                  case \'-\':

                        gotOper(ch, 1); // go pop operators

                        break; // (precedence 1)

                  case \'*\': // it’s * or /

                  case \'/\':

                        gotOper(ch, 2); // go pop operators

                        break; // (precedence 2)

                  case \'(\': // it’s a left paren

                        theStack.push(ch); // push it

                        break;

                  case \')\': // it’s a right paren

                        gotParen(ch); // go pop operators

                        break;

                  default: // must be an operand

                        output = output + ch; // write it to output

                        break;

                  } // end switch

            } // end for

            while (!theStack.isEmpty()) // pop remaining opers

            {

                  theStack.displayStack(\"While \"); // *diagnostic*

                  output = output + theStack.pop(); // write to output

            }

            theStack.displayStack(\"End \"); // *diagnostic*

            return output; // return postfix

      } // end doTrans()

            // --------------------------------------------------------------

      public void gotOper(char opThis, int prec1) { // got operator from input

            while (!theStack.isEmpty()) {

                  char opTop = theStack.pop();

                  if (opTop == \'(\') // if iy’s a ‘(‘

                  {

                        theStack.push(opTop); // restore ‘(‘

                        break;

                  } else // it’s an operator

                  {

                        int prec2; // precedence of new op

                        if (opTop == \'+\' || opTop == \'-\') // find new op prec

                              prec2 = 1;

                        else

                              prec2 = 2;

                        if (prec2 < prec1) // if prec of new op less

                        { // than prec of old

                              theStack.push(opTop); // save newly-popped op

                              break;

                        } else // prec of new not less

                              output = output + opTop; // than prec of old

                  } // end else (it’s an operator)

            } // end while

            theStack.push(opThis); // push new operator

      } // end gotOp()

            // --------------------------------------------------------------

      public void gotParen(char ch) { // got right paren from input

            while (!theStack.isEmpty()) {

                  char chx = theStack.pop();

                  if (chx == \'(\') // if popped ’(‘

                        break; // we’re done

                  else // if popped operator

                        output = output + chx; // output it

            } // end while

      } // end popOps()

            // --------------------------------------------------------------

} // end class InToPost

      ////////////////////////////////////////////////////////////////

class InfixApp {

      public static void main(String[] args) throws IOException {

            String input, output;

            while (true) {

                  System.out.print(\"Enter infix: \");

                  System.out.flush();

                  input = getString(); // read a string from kbd

                  if (input.equals(\"\")) // quit if [Enter]

                        break;

                  // make a translator

                  InToPost theTrans = new InToPost(input);

                  output = theTrans.doTrans(); // do the translation

                  System.out.println(\"Postfix is \" + output + \'\ \');

            } // end while

      } // end main()

            // --------------------------------------------------------------

      public static String getString() throws IOException {

            InputStreamReader isr = new InputStreamReader(System.in);

            BufferedReader br = new BufferedReader(isr);

            String s = br.readLine();

            return s;

      }

      // --------------------------------------------------------------

} // end class InfixApp

      ////////////////////////////////////////////////////////////////

Solution

import java.io.IOException;

public class InToPost {
private Stack theStack;
private String input;
private String output = \"\";
public InToPost(String in) {
input = in;
int stackSize = input.length();
theStack = new Stack(stackSize);
}
public String doTrans() {
for (int j = 0; j < input.length(); j++) {
char ch = input.charAt(j);
switch (ch) {
case \'+\':
case \'-\':
gotOper(ch, 1);
break;
case \'*\':
case \'/\':
gotOper(ch, 2);
break;
case \'(\':
theStack.push(ch);
break;
case \')\':
gotParen(ch);
break;
default:
output = output + ch;
break;
}
}
while (!theStack.isEmpty()) {
output = output + theStack.pop();
}
System.out.println(output);
return output;
}
public void gotOper(char opThis, int prec1) {
while (!theStack.isEmpty()) {
char opTop = theStack.pop();
if (opTop == \'(\') {
theStack.push(opTop);
break;
}
else {
int prec2;
if (opTop == \'+\' || opTop == \'-\')
prec2 = 1;
else
prec2 = 2;
if (prec2 < prec1) {
theStack.push(opTop);
break;
}
       else
output = output + opTop;
}
}
theStack.push(opThis);
}
public void gotParen(char ch){
while (!theStack.isEmpty()) {
char chx = theStack.pop();
if (chx == \'(\')
break;
else
output = output + chx;
}
}
public static void main(String[] args)
throws IOException {
String input = \"1+2*4/5-7+3/6\";
String output;
InToPost theTrans = new InToPost(input);
output = theTrans.doTrans();
System.out.println(\"Postfix is \" + output + \'\ \');
}
class Stack {
private int maxSize;
private char[] stackArray;
private int top;
public Stack(int max) {
maxSize = max;
stackArray = new char[maxSize];
top = -1;
}
public void push(char j) {
stackArray[++top] = j;
}
public char pop() {
return stackArray[top--];
}
public char peek() {
return stackArray[top];
}
public boolean isEmpty() {
return (top == -1);
}
}
}

please need help with this exercise data structure: i should use the below code for infix to postfix code and i should add the bellow question to the code. so t
please need help with this exercise data structure: i should use the below code for infix to postfix code and i should add the bellow question to the code. so t
please need help with this exercise data structure: i should use the below code for infix to postfix code and i should add the bellow question to the code. so t
please need help with this exercise data structure: i should use the below code for infix to postfix code and i should add the bellow question to the code. so t
please need help with this exercise data structure: i should use the below code for infix to postfix code and i should add the bellow question to the code. so t
please need help with this exercise data structure: i should use the below code for infix to postfix code and i should add the bellow question to the code. so t
please need help with this exercise data structure: i should use the below code for infix to postfix code and i should add the bellow question to the code. so t

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site