JAVA I have cannot be resolved or is not a field error on no

(JAVA)

I have \"cannot be resolved or is not a field\" error on

node.right = y; and node.left = x;

//BuildExpressionTree.java

import java.util.*;
import javax.swing.*;
import javax.xml.soap.Node;

public class BuildExpressionTree {
   private Stack stack = new Stack();
   private Node node;
  
   public static boolean isOperator(String token){
       if(token == \"+\" || token == \"-\" || token == \"*\" || token == \"/\"){
           return true;
       }
       JOptionPane.showMessageDialog(null, \"Invalid token\" + token, \"Token Error\", JOptionPane.WARNING_MESSAGE);
       return false;
   }
  
   public static boolean isInteger(String token){
       try{
           if(Integer.parseInt(token) == 0 ||
           Integer.parseInt(token) == 1 ||
           Integer.parseInt(token) == 2 ||
           Integer.parseInt(token) == 3 ||
           Integer.parseInt(token) == 4 ||
           Integer.parseInt(token) == 5 ||
           Integer.parseInt(token) == 6 ||
           Integer.parseInt(token) == 7 ||
           Integer.parseInt(token) == 8 ||
           Integer.parseInt(token) == 9){
           return true;
           }
       }catch(NumberFormatException nfe){
           JOptionPane.showMessageDialog(null, \"Invalid token\" + token, \"Token Error\", JOptionPane.WARNING_MESSAGE);
           return false;
       }
       return true;
   }
  
   public String[] postfixExpression(String postfixExp){
       String expression = postfixExp;
       String[] expressionArray = expression.split(\"\\\\s+\");
       String splitExpression = \"\";
      
       for(int i = 0; i < expressionArray.length; i++){
           splitExpression += expressionArray[i];
       }
       StringTokenizer tokenizedExpression = new StringTokenizer(splitExpression);
       splitExpression = \"\";
      
       while(tokenizedExpression.hasMoreTokens()){
           String nextToken = tokenizedExpression.nextToken();
           splitExpression += nextToken + \" \";
       }String[] tokens = splitExpression.split(\"\\\\s+\");
       return tokens;
   }
  
   public String constructTree(String expression) throws RuntimeException{
       stack = new Stack();
       String result;
       String[] expressionRead = postfixExpression(expression);
       for(int i = 0; i < expressionRead.length; i++){
           String nextToken = expressionRead[i];
           if(isInteger(nextToken)){
               node = (Node) new OperandNode(nextToken);
               stack.push(node);
           }else if(isOperator(nextToken)){
               node = (Node) new OperatorNode(nextToken);
               Node y;
               Node x;
              
               y = (Node) stack.pop();
               x = (Node) stack.pop();
              
               node.right = y;
               node.left = x;

               stack.push(node);
           }else{
               throw new RuntimeException();
           }
       }
       result = stack.peek().toString();
       return result;
   }
}

//Node.java


public abstract class Node {
   protected String data;
   protected Node left;
   protected Node right;
  
   public void setData(String data){
       this.data = data;
   }
  
   public String getData(){
       return data;
   }
}

class OperandNode extends Node{
   public OperandNode(String operand){
       this.data = operand;
       this.left = null;
       this.right = null;
   }
   public String toString(){
       return data + \"\";
   }
}

class OperatorNode extends Node{
   public OperatorNode(String operator){
       this.data = operator;
       this.left = null;
       this.right = null;
   }
  
   public void setLeft(Node left){
       this.left = left;
   }
   public Node getLeft(){
       return left;
   }
   public void setRight(Node right){
       this.right = right;
   }
   public Node getRight(){
       return right;
   }
   public String toString(){
       return \"( \" + this.left + \" \" + data + this.right + \" )\";
   }
}

Solution

/**
*
* @author Rashmi Tiwari
*/

import java.util.*;
import javax.swing.*;
import javax.xml.soap.Node;
public class BuildExpressionTree {
private Stack stack = new Stack();
private Node node;
  
public static boolean isOperator(String token){
if(token == \"+\" || token == \"-\" || token == \"*\" || token == \"/\"){
return true;
}
JOptionPane.showMessageDialog(null, \"Invalid token\" + token, \"Token Error\", JOptionPane.WARNING_MESSAGE);
return false;
}
  
public static boolean isInteger(String token){
try{
if(Integer.parseInt(token) == 0 ||
Integer.parseInt(token) == 1 ||
Integer.parseInt(token) == 2 ||
Integer.parseInt(token) == 3 ||
Integer.parseInt(token) == 4 ||
Integer.parseInt(token) == 5 ||
Integer.parseInt(token) == 6 ||
Integer.parseInt(token) == 7 ||
Integer.parseInt(token) == 8 ||
Integer.parseInt(token) == 9){
return true;
}
}catch(NumberFormatException nfe){
JOptionPane.showMessageDialog(null, \"Invalid token\" + token, \"Token Error\", JOptionPane.WARNING_MESSAGE);
return false;
}
return true;
}
  
public String[] postfixExpression(String postfixExp){
String expression = postfixExp;
String[] expressionArray = expression.split(\"\\\\s+\");
String splitExpression = \"\";
  
for(int i = 0; i < expressionArray.length; i++){
splitExpression += expressionArray[i];
}
StringTokenizer tokenizedExpression = new StringTokenizer(splitExpression);
splitExpression = \"\";
  
while(tokenizedExpression.hasMoreTokens()){
String nextToken = tokenizedExpression.nextToken();
splitExpression += nextToken + \" \";
}String[] tokens = splitExpression.split(\"\\\\s+\");
return tokens;
}
  
public String constructTree(String expression) throws RuntimeException{
stack = new Stack();
String result;
String[] expressionRead = postfixExpression(expression);
for(int i = 0; i < expressionRead.length; i++){
String nextToken = expressionRead[i];
if(isInteger(nextToken)){
node = (Node) new OperandNode(nextToken);
stack.push(node);
}else if(isOperator(nextToken)){
node = (Node) new OperatorNode(nextToken);
Node y;
Node x;
  
y = (Node)stack.peek();
stack.pop();
x = (Node)stack.peek();
stack.pop();

node.right = y;

node.left = x;   
stack.push(node);
}else{
throw new RuntimeException();
}
}
result = stack.peek().toString();
return result;
}
}
//Node.java

public abstract class Node {
protected String data;
protected Node left;
protected Node right;
  
public void setData(String data){
this.data = data;
}
  
public String getData(){
return data;
}
}
class OperandNode extends Node{
public OperandNode(String operand){
this.data = operand;
this.left = null;
this.right = null;
}
public String toString(){
return data + \"\";
}
}
class OperatorNode extends Node{
public OperatorNode(String operator){
this.data = operator;
this.left = null;
this.right = null;
}
  
public void setLeft(Node left){
this.left = left;
}
public Node getLeft(){
return left;
}
public void setRight(Node right){
this.right = right;
}
public Node getRight(){
return right;
}
public String toString(){
return \"( \" + this.left + \" \" + data + this.right + \" )\";
}
}

(JAVA) I have \
(JAVA) I have \
(JAVA) I have \
(JAVA) I have \
(JAVA) I have \

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site