aspose file tools*
The moose likes Beginning Java and the fly likes how to set a node on expression tree Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "how to set a node on expression tree" Watch "how to set a node on expression tree" New topic
Author

how to set a node on expression tree

Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 102
I'm trying to build an expression tree for the first time. There will be a prefix expression entered and I am thinking that I can check if there is an operator and if there is I can set the root node equal to the operator and if a number is the next character I can and the next char will be an int as well so i'd but I get an error because the interface is set to take TreeNode parameter. How Do I get it to accept an int as a TreeNode? This is what I have so far.

And this is my interface
Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 102
I'm getting an error that says I cannot use an int where TreeNode is supposed to be.
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18570
    
    8

So use a TreeNode then. Your TreeNode can contain any object, can't it? Or at least you should have an implementation which can act as a leaf of the tree and contain an integer or a variable, right?
Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 102
So instead of making single int type i'd make it TreeNode type and the Character.isDigit((Char)single)) would still work, I get it know. I feel silly now thanks.
Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 102
Will I still be able to apply an operator(+, -, *, /) to the number if it is of type TreeNode?
Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 102
No I get an error since I'm using Character.isDigit((char)single)).
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38818
    
  23
You do realise that the value of a char like '2' is not 2? A char is not a character, but a number, so you need to check whether you are passing 2, or more likely 0x32 (=50 in decimal) for that char '2'.
Dustin Schreader
Ranch Hand

Joined: May 25, 2009
Posts: 102
I understand somewhat... So I need to remove (char) and Character and have single of type TreeNode so it may work?
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: how to set a node on expression tree