SlideShare a Scribd company logo
Please read the comment ins code
ExpressionTree.java
----------------------------------
/**
* This is the class for Expression Tree.
* Used to create Expression Tree and Evaluate it
*/
/**
* Following logic is used to construct a Tree
* Here we use stack for Preparing Tree
* Loop through given Expression String
* If Character is Operand , Create node and push to stack
* If Character is Operator then
* 1)Create Node for Operator
* 2)Pop 2 nodes from Stack and Made
* OpretorNode--> left == first node pop
* OpretorNode--> right == second node pop
* At the end of creation of Expression Tree, Stack have only one node , which is root of
Expression tree
*/
/** Class ExpressionTree **/
class ExpressionTree
{
/** class TreeNode
* Stored Character ==> Digit(0..9) or a Operator +,-,*,/
* Left Node and Right Node
*
* **/
class TreeNode
{
char data;
TreeNode left, right;
/** constructor **/
public TreeNode(char data)
{
this.data = data;
this.left = null;
this.right = null;
}
}
/** class StackNode **/
class StackNode
{
TreeNode treeNode;
StackNode next;
/** constructor **/
public StackNode(TreeNode treeNode)
{
this.treeNode = treeNode;
next = null;
}
}
private static StackNode top;
/** constructor
* Constructor takes input string like "+-+7*935*82*625"
* Input should be in Prefix notation
* **/
public ExpressionTree(String expression)
{
top = null;
//Call Method for prepare expression tree
buildTree(expression);
}
/** function to clear tree **/
public void clear()
{
top = null;
}
/** function to push a node **/
private void push(TreeNode ptr)
{
if (top == null)
top = new StackNode(ptr);
else
{
StackNode nptr = new StackNode(ptr);
nptr.next = top;
top = nptr;
}
}
/** function to pop a node
* When it find operator pop 2 elements from Stack
*
* **/
private TreeNode pop()
{
if (top == null)
throw new RuntimeException("Underflow");
else
{
TreeNode ptr = top.treeNode;
top = top.next;
return ptr;
}
}
/** function to get top node **/
private TreeNode peek()
{
return top.treeNode;
}
/** function to insert character **/
private void insert(char val)
{
try
{
//If Operand , Create node and push to Stack
if (isDigit(val))
{
TreeNode nptr = new TreeNode(val);
push(nptr);
}
//If Operator , Create node and popup 2 elements and make them its right and left
else if (isOperator(val))
{
TreeNode nptr = new TreeNode(val);
nptr.left = pop();
nptr.right = pop();
push(nptr);
}
}
catch (Exception e)
{
System.out.println("Invalid Expression");
}
}
/** function to check if digit **/
private boolean isDigit(char ch)
{
return ch >= '0' && ch <= '9';
}
/** function to check if operator **/
private boolean isOperator(char ch)
{
return ch == '+' || ch == '-' || ch == '*' || ch == '/';
}
/** function to convert character to digit **/
private int toDigit(char ch)
{
return ch - '0';
}
/** function to build tree from input */
public void buildTree(String eqn)
{
for (int i = eqn.length() - 1; i >= 0; i--)
insert(eqn.charAt(i));
}
/** function to evaluate tree */
public double evaluate()
{
return evaluate(peek());
}
/** function to evaluate tree
*
* */
public double evaluate(TreeNode ptr)
{
if (ptr.left == null && ptr.right == null)
return toDigit(ptr.data);
else
{
double result = 0.0;
double left = evaluate(ptr.left);
double right = evaluate(ptr.right);
char operator = ptr.data;
switch (operator)
{
case '+' : result = left + right; break;
case '-' : result = left - right; break;
case '*' : result = left * right; break;
case '/' : result = left / right; break;
default : result = left + right; break;
}
return result;
}
}
/** function to get postfix expression */
public void postfix()
{
postOrder(peek());
}
/** post order traversal */
private void postOrder(TreeNode ptr)
{
if (ptr != null)
{
postOrder(ptr.left);
postOrder(ptr.right);
System.out.print(ptr.data);
}
}
/** function to get infix expression */
public void infix()
{
inOrder(peek());
}
/** in order traversal */
private void inOrder(TreeNode ptr)
{
if (ptr != null)
{
inOrder(ptr.left);
System.out.print(ptr.data);
inOrder(ptr.right);
}
}
/** function to get prefix expression */
public void prefix()
{
preOrder(peek());
}
/** pre order traversal */
private void preOrder(TreeNode ptr)
{
if (ptr != null)
{
System.out.print(ptr.data);
preOrder(ptr.left);
preOrder(ptr.right);
}
}
}
ExpressionTreeTest.java , class to test
------------------------------------------------------------
import java.util.Scanner;
/** class ExpressionTreeTest **/
public class ExpressionTreeTest
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Expression Tree Test");
System.out.println(" Enter equation in prefix form");
/** make object of ExpressionTree **/
ExpressionTree et = new ExpressionTree(scan.next());
System.out.print(" Prefix : ");
et.prefix();
System.out.print("  Infix : ");
et.infix();
System.out.print("  Postfix : ");
et.postfix();
System.out.println("  Evaluated Result : "+ et.evaluate());
}
}
Solution
Please read the comment ins code
ExpressionTree.java
----------------------------------
/**
* This is the class for Expression Tree.
* Used to create Expression Tree and Evaluate it
*/
/**
* Following logic is used to construct a Tree
* Here we use stack for Preparing Tree
* Loop through given Expression String
* If Character is Operand , Create node and push to stack
* If Character is Operator then
* 1)Create Node for Operator
* 2)Pop 2 nodes from Stack and Made
* OpretorNode--> left == first node pop
* OpretorNode--> right == second node pop
* At the end of creation of Expression Tree, Stack have only one node , which is root of
Expression tree
*/
/** Class ExpressionTree **/
class ExpressionTree
{
/** class TreeNode
* Stored Character ==> Digit(0..9) or a Operator +,-,*,/
* Left Node and Right Node
*
* **/
class TreeNode
{
char data;
TreeNode left, right;
/** constructor **/
public TreeNode(char data)
{
this.data = data;
this.left = null;
this.right = null;
}
}
/** class StackNode **/
class StackNode
{
TreeNode treeNode;
StackNode next;
/** constructor **/
public StackNode(TreeNode treeNode)
{
this.treeNode = treeNode;
next = null;
}
}
private static StackNode top;
/** constructor
* Constructor takes input string like "+-+7*935*82*625"
* Input should be in Prefix notation
* **/
public ExpressionTree(String expression)
{
top = null;
//Call Method for prepare expression tree
buildTree(expression);
}
/** function to clear tree **/
public void clear()
{
top = null;
}
/** function to push a node **/
private void push(TreeNode ptr)
{
if (top == null)
top = new StackNode(ptr);
else
{
StackNode nptr = new StackNode(ptr);
nptr.next = top;
top = nptr;
}
}
/** function to pop a node
* When it find operator pop 2 elements from Stack
*
* **/
private TreeNode pop()
{
if (top == null)
throw new RuntimeException("Underflow");
else
{
TreeNode ptr = top.treeNode;
top = top.next;
return ptr;
}
}
/** function to get top node **/
private TreeNode peek()
{
return top.treeNode;
}
/** function to insert character **/
private void insert(char val)
{
try
{
//If Operand , Create node and push to Stack
if (isDigit(val))
{
TreeNode nptr = new TreeNode(val);
push(nptr);
}
//If Operator , Create node and popup 2 elements and make them its right and left
else if (isOperator(val))
{
TreeNode nptr = new TreeNode(val);
nptr.left = pop();
nptr.right = pop();
push(nptr);
}
}
catch (Exception e)
{
System.out.println("Invalid Expression");
}
}
/** function to check if digit **/
private boolean isDigit(char ch)
{
return ch >= '0' && ch <= '9';
}
/** function to check if operator **/
private boolean isOperator(char ch)
{
return ch == '+' || ch == '-' || ch == '*' || ch == '/';
}
/** function to convert character to digit **/
private int toDigit(char ch)
{
return ch - '0';
}
/** function to build tree from input */
public void buildTree(String eqn)
{
for (int i = eqn.length() - 1; i >= 0; i--)
insert(eqn.charAt(i));
}
/** function to evaluate tree */
public double evaluate()
{
return evaluate(peek());
}
/** function to evaluate tree
*
* */
public double evaluate(TreeNode ptr)
{
if (ptr.left == null && ptr.right == null)
return toDigit(ptr.data);
else
{
double result = 0.0;
double left = evaluate(ptr.left);
double right = evaluate(ptr.right);
char operator = ptr.data;
switch (operator)
{
case '+' : result = left + right; break;
case '-' : result = left - right; break;
case '*' : result = left * right; break;
case '/' : result = left / right; break;
default : result = left + right; break;
}
return result;
}
}
/** function to get postfix expression */
public void postfix()
{
postOrder(peek());
}
/** post order traversal */
private void postOrder(TreeNode ptr)
{
if (ptr != null)
{
postOrder(ptr.left);
postOrder(ptr.right);
System.out.print(ptr.data);
}
}
/** function to get infix expression */
public void infix()
{
inOrder(peek());
}
/** in order traversal */
private void inOrder(TreeNode ptr)
{
if (ptr != null)
{
inOrder(ptr.left);
System.out.print(ptr.data);
inOrder(ptr.right);
}
}
/** function to get prefix expression */
public void prefix()
{
preOrder(peek());
}
/** pre order traversal */
private void preOrder(TreeNode ptr)
{
if (ptr != null)
{
System.out.print(ptr.data);
preOrder(ptr.left);
preOrder(ptr.right);
}
}
}
ExpressionTreeTest.java , class to test
------------------------------------------------------------
import java.util.Scanner;
/** class ExpressionTreeTest **/
public class ExpressionTreeTest
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Expression Tree Test");
System.out.println(" Enter equation in prefix form");
/** make object of ExpressionTree **/
ExpressionTree et = new ExpressionTree(scan.next());
System.out.print(" Prefix : ");
et.prefix();
System.out.print("  Infix : ");
et.infix();
System.out.print("  Postfix : ");
et.postfix();
System.out.println("  Evaluated Result : "+ et.evaluate());
}
}
Ad

More Related Content

Similar to Please read the comment ins codeExpressionTree.java-------------.pdf (20)

Data StructuresPlease I need help completing this c++ program..pdf
Data StructuresPlease I need help completing this c++ program..pdfData StructuresPlease I need help completing this c++ program..pdf
Data StructuresPlease I need help completing this c++ program..pdf
arkleatheray
 
DS group binary tree all information M.pptx
DS  group binary tree all information M.pptxDS  group binary tree all information M.pptx
DS group binary tree all information M.pptx
AjajKhan23
 
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdfModify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
arjuncorner565
 
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docxNew folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
curwenmichaela
 
ANSimport java.util.Scanner; class Bina_node { Bina_node .pdf
ANSimport java.util.Scanner; class Bina_node { Bina_node .pdfANSimport java.util.Scanner; class Bina_node { Bina_node .pdf
ANSimport java.util.Scanner; class Bina_node { Bina_node .pdf
anukoolelectronics
 
#includeiostream#includecstdio#includecstdlibusing names.pdf
#includeiostream#includecstdio#includecstdlibusing names.pdf#includeiostream#includecstdio#includecstdlibusing names.pdf
#includeiostream#includecstdio#includecstdlibusing names.pdf
KUNALHARCHANDANI1
 
Binary Tree in C++ coding in the data structure
Binary Tree in C++ coding in the data structureBinary Tree in C++ coding in the data structure
Binary Tree in C++ coding in the data structure
ZarghamullahShah
 
Part 1)#include stdio.h #include stdlib.h #include pthrea.pdf
Part 1)#include stdio.h #include stdlib.h #include pthrea.pdfPart 1)#include stdio.h #include stdlib.h #include pthrea.pdf
Part 1)#include stdio.h #include stdlib.h #include pthrea.pdf
mohammadirfan136964
 
Using NetBeansImplement a queue named QueueLL using a Linked List .pdf
Using NetBeansImplement a queue named QueueLL using a Linked List .pdfUsing NetBeansImplement a queue named QueueLL using a Linked List .pdf
Using NetBeansImplement a queue named QueueLL using a Linked List .pdf
siennatimbok52331
 
solution in c++program Program to implement a queue using two .pdf
solution in c++program Program to implement a queue using two .pdfsolution in c++program Program to implement a queue using two .pdf
solution in c++program Program to implement a queue using two .pdf
brijmote
 
Once you have all the structures working as intended- it is time to co.docx
Once you have all the structures working as intended- it is time to co.docxOnce you have all the structures working as intended- it is time to co.docx
Once you have all the structures working as intended- it is time to co.docx
farrahkur54
 
Write a program that displays an AVL tree along with its balance fac.docx
 Write a program that displays an AVL tree  along with its balance fac.docx Write a program that displays an AVL tree  along with its balance fac.docx
Write a program that displays an AVL tree along with its balance fac.docx
ajoy21
 
A)B) C++ program to create a Complete Binary tree from its Lin.pdf
A)B) C++ program to create a Complete Binary tree from its Lin.pdfA)B) C++ program to create a Complete Binary tree from its Lin.pdf
A)B) C++ program to create a Complete Binary tree from its Lin.pdf
anton291
 
Write a function in C++ to generate an N-node random binary search t.pdf
Write a function in C++ to generate an N-node random binary search t.pdfWrite a function in C++ to generate an N-node random binary search t.pdf
Write a function in C++ to generate an N-node random binary search t.pdf
info824691
 
Given the following codepackage data1;import java.util.;p.pdf
Given the following codepackage data1;import java.util.;p.pdfGiven the following codepackage data1;import java.util.;p.pdf
Given the following codepackage data1;import java.util.;p.pdf
illyasraja7
 
Stack queue
Stack queueStack queue
Stack queue
Tony Nguyen
 
Stack queue
Stack queueStack queue
Stack queue
Young Alista
 
Stack queue
Stack queueStack queue
Stack queue
Luis Goldster
 
Stack queue
Stack queueStack queue
Stack queue
Hoang Nguyen
 
Stack queue
Stack queueStack queue
Stack queue
Harry Potter
 
Data StructuresPlease I need help completing this c++ program..pdf
Data StructuresPlease I need help completing this c++ program..pdfData StructuresPlease I need help completing this c++ program..pdf
Data StructuresPlease I need help completing this c++ program..pdf
arkleatheray
 
DS group binary tree all information M.pptx
DS  group binary tree all information M.pptxDS  group binary tree all information M.pptx
DS group binary tree all information M.pptx
AjajKhan23
 
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdfModify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
Modify HuffmanTree.java and HuffmanNode.java to allow the user to se.pdf
arjuncorner565
 
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docxNew folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
New folderjsjfArrayStack.classpackage jsjf;publicsynchronize.docx
curwenmichaela
 
ANSimport java.util.Scanner; class Bina_node { Bina_node .pdf
ANSimport java.util.Scanner; class Bina_node { Bina_node .pdfANSimport java.util.Scanner; class Bina_node { Bina_node .pdf
ANSimport java.util.Scanner; class Bina_node { Bina_node .pdf
anukoolelectronics
 
#includeiostream#includecstdio#includecstdlibusing names.pdf
#includeiostream#includecstdio#includecstdlibusing names.pdf#includeiostream#includecstdio#includecstdlibusing names.pdf
#includeiostream#includecstdio#includecstdlibusing names.pdf
KUNALHARCHANDANI1
 
Binary Tree in C++ coding in the data structure
Binary Tree in C++ coding in the data structureBinary Tree in C++ coding in the data structure
Binary Tree in C++ coding in the data structure
ZarghamullahShah
 
Part 1)#include stdio.h #include stdlib.h #include pthrea.pdf
Part 1)#include stdio.h #include stdlib.h #include pthrea.pdfPart 1)#include stdio.h #include stdlib.h #include pthrea.pdf
Part 1)#include stdio.h #include stdlib.h #include pthrea.pdf
mohammadirfan136964
 
Using NetBeansImplement a queue named QueueLL using a Linked List .pdf
Using NetBeansImplement a queue named QueueLL using a Linked List .pdfUsing NetBeansImplement a queue named QueueLL using a Linked List .pdf
Using NetBeansImplement a queue named QueueLL using a Linked List .pdf
siennatimbok52331
 
solution in c++program Program to implement a queue using two .pdf
solution in c++program Program to implement a queue using two .pdfsolution in c++program Program to implement a queue using two .pdf
solution in c++program Program to implement a queue using two .pdf
brijmote
 
Once you have all the structures working as intended- it is time to co.docx
Once you have all the structures working as intended- it is time to co.docxOnce you have all the structures working as intended- it is time to co.docx
Once you have all the structures working as intended- it is time to co.docx
farrahkur54
 
Write a program that displays an AVL tree along with its balance fac.docx
 Write a program that displays an AVL tree  along with its balance fac.docx Write a program that displays an AVL tree  along with its balance fac.docx
Write a program that displays an AVL tree along with its balance fac.docx
ajoy21
 
A)B) C++ program to create a Complete Binary tree from its Lin.pdf
A)B) C++ program to create a Complete Binary tree from its Lin.pdfA)B) C++ program to create a Complete Binary tree from its Lin.pdf
A)B) C++ program to create a Complete Binary tree from its Lin.pdf
anton291
 
Write a function in C++ to generate an N-node random binary search t.pdf
Write a function in C++ to generate an N-node random binary search t.pdfWrite a function in C++ to generate an N-node random binary search t.pdf
Write a function in C++ to generate an N-node random binary search t.pdf
info824691
 
Given the following codepackage data1;import java.util.;p.pdf
Given the following codepackage data1;import java.util.;p.pdfGiven the following codepackage data1;import java.util.;p.pdf
Given the following codepackage data1;import java.util.;p.pdf
illyasraja7
 

More from shanki7 (20)

I cant see the question .pdf
                     I cant see the question                        .pdf                     I cant see the question                        .pdf
I cant see the question .pdf
shanki7
 
sulfur trioxide is SO3 atomic mass S = 32.1 gmo.pdf
                     sulfur trioxide is SO3 atomic mass S = 32.1 gmo.pdf                     sulfur trioxide is SO3 atomic mass S = 32.1 gmo.pdf
sulfur trioxide is SO3 atomic mass S = 32.1 gmo.pdf
shanki7
 
x2 = 7xSolutionx2 = 7x.pdf
x2 = 7xSolutionx2 = 7x.pdfx2 = 7xSolutionx2 = 7x.pdf
x2 = 7xSolutionx2 = 7x.pdf
shanki7
 
vrms=3RTMxSolutionvrms=3RTMx.pdf
vrms=3RTMxSolutionvrms=3RTMx.pdfvrms=3RTMxSolutionvrms=3RTMx.pdf
vrms=3RTMxSolutionvrms=3RTMx.pdf
shanki7
 
This program here prints the number of words that occurs in the inpu.pdf
This program here prints the number of words that occurs in the inpu.pdfThis program here prints the number of words that occurs in the inpu.pdf
This program here prints the number of words that occurs in the inpu.pdf
shanki7
 
This is a heart related disease. The identification of a disease.pdf
This is a heart related disease. The identification of a disease.pdfThis is a heart related disease. The identification of a disease.pdf
This is a heart related disease. The identification of a disease.pdf
shanki7
 
The terminating hairpin loop occurs in the tryptophan operon whe.pdf
The terminating hairpin loop occurs in the tryptophan operon whe.pdfThe terminating hairpin loop occurs in the tryptophan operon whe.pdf
The terminating hairpin loop occurs in the tryptophan operon whe.pdf
shanki7
 
The solution is--fn= -13(-1)n+ 13(2)nSolutionThe solution .pdf
The solution is--fn= -13(-1)n+ 13(2)nSolutionThe solution .pdfThe solution is--fn= -13(-1)n+ 13(2)nSolutionThe solution .pdf
The solution is--fn= -13(-1)n+ 13(2)nSolutionThe solution .pdf
shanki7
 
The follow list restates these 3 fundamental levels of service for Q.pdf
The follow list restates these 3 fundamental levels of service for Q.pdfThe follow list restates these 3 fundamental levels of service for Q.pdf
The follow list restates these 3 fundamental levels of service for Q.pdf
shanki7
 
Please find the answers and explanations belowPart A1. The ing.pdf
Please find the answers and explanations belowPart A1. The ing.pdfPlease find the answers and explanations belowPart A1. The ing.pdf
Please find the answers and explanations belowPart A1. The ing.pdf
shanki7
 
nSolutionn.pdf
nSolutionn.pdfnSolutionn.pdf
nSolutionn.pdf
shanki7
 
Mass of liquid = 22.5 gHeat added = 2.34 kJ = 2340 JTemperature .pdf
Mass of liquid = 22.5 gHeat added = 2.34 kJ = 2340 JTemperature .pdfMass of liquid = 22.5 gHeat added = 2.34 kJ = 2340 JTemperature .pdf
Mass of liquid = 22.5 gHeat added = 2.34 kJ = 2340 JTemperature .pdf
shanki7
 
It is given that we should use 4 bit input, i.e we will have a set o.pdf
It is given that we should use 4 bit input, i.e we will have a set o.pdfIt is given that we should use 4 bit input, i.e we will have a set o.pdf
It is given that we should use 4 bit input, i.e we will have a set o.pdf
shanki7
 
IndexingConcatinationSolutionIndexingConcatination.pdf
IndexingConcatinationSolutionIndexingConcatination.pdfIndexingConcatinationSolutionIndexingConcatination.pdf
IndexingConcatinationSolutionIndexingConcatination.pdf
shanki7
 
import java.util.ArrayList; import java.util.List;public class H.pdf
import java.util.ArrayList; import java.util.List;public class H.pdfimport java.util.ArrayList; import java.util.List;public class H.pdf
import java.util.ArrayList; import java.util.List;public class H.pdf
shanki7
 
i dont knowSolutioni dont know.pdf
i dont knowSolutioni dont know.pdfi dont knowSolutioni dont know.pdf
i dont knowSolutioni dont know.pdf
shanki7
 
Heterochromatin is a tightly packed form of DNA, which comes in mult.pdf
Heterochromatin is a tightly packed form of DNA, which comes in mult.pdfHeterochromatin is a tightly packed form of DNA, which comes in mult.pdf
Heterochromatin is a tightly packed form of DNA, which comes in mult.pdf
shanki7
 
H2A (ACID) Molarity         =    0.15 M Normality N1 =    Mo.pdf
H2A (ACID) Molarity         =    0.15 M Normality N1 =    Mo.pdfH2A (ACID) Molarity         =    0.15 M Normality N1 =    Mo.pdf
H2A (ACID) Molarity         =    0.15 M Normality N1 =    Mo.pdf
shanki7
 
False , we should not always rename the worksheet.SolutionFals.pdf
False , we should not always rename the worksheet.SolutionFals.pdfFalse , we should not always rename the worksheet.SolutionFals.pdf
False , we should not always rename the worksheet.SolutionFals.pdf
shanki7
 
Difference between computer architecture and computer organization.pdf
Difference between computer architecture and computer organization.pdfDifference between computer architecture and computer organization.pdf
Difference between computer architecture and computer organization.pdf
shanki7
 
I cant see the question .pdf
                     I cant see the question                        .pdf                     I cant see the question                        .pdf
I cant see the question .pdf
shanki7
 
sulfur trioxide is SO3 atomic mass S = 32.1 gmo.pdf
                     sulfur trioxide is SO3 atomic mass S = 32.1 gmo.pdf                     sulfur trioxide is SO3 atomic mass S = 32.1 gmo.pdf
sulfur trioxide is SO3 atomic mass S = 32.1 gmo.pdf
shanki7
 
x2 = 7xSolutionx2 = 7x.pdf
x2 = 7xSolutionx2 = 7x.pdfx2 = 7xSolutionx2 = 7x.pdf
x2 = 7xSolutionx2 = 7x.pdf
shanki7
 
vrms=3RTMxSolutionvrms=3RTMx.pdf
vrms=3RTMxSolutionvrms=3RTMx.pdfvrms=3RTMxSolutionvrms=3RTMx.pdf
vrms=3RTMxSolutionvrms=3RTMx.pdf
shanki7
 
This program here prints the number of words that occurs in the inpu.pdf
This program here prints the number of words that occurs in the inpu.pdfThis program here prints the number of words that occurs in the inpu.pdf
This program here prints the number of words that occurs in the inpu.pdf
shanki7
 
This is a heart related disease. The identification of a disease.pdf
This is a heart related disease. The identification of a disease.pdfThis is a heart related disease. The identification of a disease.pdf
This is a heart related disease. The identification of a disease.pdf
shanki7
 
The terminating hairpin loop occurs in the tryptophan operon whe.pdf
The terminating hairpin loop occurs in the tryptophan operon whe.pdfThe terminating hairpin loop occurs in the tryptophan operon whe.pdf
The terminating hairpin loop occurs in the tryptophan operon whe.pdf
shanki7
 
The solution is--fn= -13(-1)n+ 13(2)nSolutionThe solution .pdf
The solution is--fn= -13(-1)n+ 13(2)nSolutionThe solution .pdfThe solution is--fn= -13(-1)n+ 13(2)nSolutionThe solution .pdf
The solution is--fn= -13(-1)n+ 13(2)nSolutionThe solution .pdf
shanki7
 
The follow list restates these 3 fundamental levels of service for Q.pdf
The follow list restates these 3 fundamental levels of service for Q.pdfThe follow list restates these 3 fundamental levels of service for Q.pdf
The follow list restates these 3 fundamental levels of service for Q.pdf
shanki7
 
Please find the answers and explanations belowPart A1. The ing.pdf
Please find the answers and explanations belowPart A1. The ing.pdfPlease find the answers and explanations belowPart A1. The ing.pdf
Please find the answers and explanations belowPart A1. The ing.pdf
shanki7
 
nSolutionn.pdf
nSolutionn.pdfnSolutionn.pdf
nSolutionn.pdf
shanki7
 
Mass of liquid = 22.5 gHeat added = 2.34 kJ = 2340 JTemperature .pdf
Mass of liquid = 22.5 gHeat added = 2.34 kJ = 2340 JTemperature .pdfMass of liquid = 22.5 gHeat added = 2.34 kJ = 2340 JTemperature .pdf
Mass of liquid = 22.5 gHeat added = 2.34 kJ = 2340 JTemperature .pdf
shanki7
 
It is given that we should use 4 bit input, i.e we will have a set o.pdf
It is given that we should use 4 bit input, i.e we will have a set o.pdfIt is given that we should use 4 bit input, i.e we will have a set o.pdf
It is given that we should use 4 bit input, i.e we will have a set o.pdf
shanki7
 
IndexingConcatinationSolutionIndexingConcatination.pdf
IndexingConcatinationSolutionIndexingConcatination.pdfIndexingConcatinationSolutionIndexingConcatination.pdf
IndexingConcatinationSolutionIndexingConcatination.pdf
shanki7
 
import java.util.ArrayList; import java.util.List;public class H.pdf
import java.util.ArrayList; import java.util.List;public class H.pdfimport java.util.ArrayList; import java.util.List;public class H.pdf
import java.util.ArrayList; import java.util.List;public class H.pdf
shanki7
 
i dont knowSolutioni dont know.pdf
i dont knowSolutioni dont know.pdfi dont knowSolutioni dont know.pdf
i dont knowSolutioni dont know.pdf
shanki7
 
Heterochromatin is a tightly packed form of DNA, which comes in mult.pdf
Heterochromatin is a tightly packed form of DNA, which comes in mult.pdfHeterochromatin is a tightly packed form of DNA, which comes in mult.pdf
Heterochromatin is a tightly packed form of DNA, which comes in mult.pdf
shanki7
 
H2A (ACID) Molarity         =    0.15 M Normality N1 =    Mo.pdf
H2A (ACID) Molarity         =    0.15 M Normality N1 =    Mo.pdfH2A (ACID) Molarity         =    0.15 M Normality N1 =    Mo.pdf
H2A (ACID) Molarity         =    0.15 M Normality N1 =    Mo.pdf
shanki7
 
False , we should not always rename the worksheet.SolutionFals.pdf
False , we should not always rename the worksheet.SolutionFals.pdfFalse , we should not always rename the worksheet.SolutionFals.pdf
False , we should not always rename the worksheet.SolutionFals.pdf
shanki7
 
Difference between computer architecture and computer organization.pdf
Difference between computer architecture and computer organization.pdfDifference between computer architecture and computer organization.pdf
Difference between computer architecture and computer organization.pdf
shanki7
 
Ad

Recently uploaded (20)

Drugs in Anaesthesia and Intensive Care,.pdf
Drugs in Anaesthesia and Intensive Care,.pdfDrugs in Anaesthesia and Intensive Care,.pdf
Drugs in Anaesthesia and Intensive Care,.pdf
crewot855
 
*"Sensing the World: Insect Sensory Systems"*
*"Sensing the World: Insect Sensory Systems"**"Sensing the World: Insect Sensory Systems"*
*"Sensing the World: Insect Sensory Systems"*
Arshad Shaikh
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
Nguyen Thanh Tu Collection
 
Myasthenia gravis (Neuromuscular disorder)
Myasthenia gravis (Neuromuscular disorder)Myasthenia gravis (Neuromuscular disorder)
Myasthenia gravis (Neuromuscular disorder)
Mohamed Rizk Khodair
 
2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx
mansk2
 
CNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscessCNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscess
Mohamed Rizk Khodair
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
Cultivation Practice of Onion in Nepal.pptx
Cultivation Practice of Onion in Nepal.pptxCultivation Practice of Onion in Nepal.pptx
Cultivation Practice of Onion in Nepal.pptx
UmeshTimilsina1
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
Form View Attributes in Odoo 18 - Odoo Slides
Form View Attributes in Odoo 18 - Odoo SlidesForm View Attributes in Odoo 18 - Odoo Slides
Form View Attributes in Odoo 18 - Odoo Slides
Celine George
 
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Leonel Morgado
 
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
parmarjuli1412
 
LDMMIA Reiki News Ed3 Vol1 For Team and Guests
LDMMIA Reiki News Ed3 Vol1 For Team and GuestsLDMMIA Reiki News Ed3 Vol1 For Team and Guests
LDMMIA Reiki News Ed3 Vol1 For Team and Guests
LDM Mia eStudios
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptxANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
Mayuri Chavan
 
What is the Philosophy of Statistics? (and how I was drawn to it)
What is the Philosophy of Statistics? (and how I was drawn to it)What is the Philosophy of Statistics? (and how I was drawn to it)
What is the Philosophy of Statistics? (and how I was drawn to it)
jemille6
 
All About the 990 Unlocking Its Mysteries and Its Power.pdf
All About the 990 Unlocking Its Mysteries and Its Power.pdfAll About the 990 Unlocking Its Mysteries and Its Power.pdf
All About the 990 Unlocking Its Mysteries and Its Power.pdf
TechSoup
 
Rock Art As a Source of Ancient Indian History
Rock Art As a Source of Ancient Indian HistoryRock Art As a Source of Ancient Indian History
Rock Art As a Source of Ancient Indian History
Virag Sontakke
 
Pope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptxPope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptx
Martin M Flynn
 
Drugs in Anaesthesia and Intensive Care,.pdf
Drugs in Anaesthesia and Intensive Care,.pdfDrugs in Anaesthesia and Intensive Care,.pdf
Drugs in Anaesthesia and Intensive Care,.pdf
crewot855
 
*"Sensing the World: Insect Sensory Systems"*
*"Sensing the World: Insect Sensory Systems"**"Sensing the World: Insect Sensory Systems"*
*"Sensing the World: Insect Sensory Systems"*
Arshad Shaikh
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
BÀI TẬP BỔ TRỢ TIẾNG ANH 9 THEO ĐƠN VỊ BÀI HỌC - GLOBAL SUCCESS - CẢ NĂM (TỪ...
Nguyen Thanh Tu Collection
 
Myasthenia gravis (Neuromuscular disorder)
Myasthenia gravis (Neuromuscular disorder)Myasthenia gravis (Neuromuscular disorder)
Myasthenia gravis (Neuromuscular disorder)
Mohamed Rizk Khodair
 
2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx2025 The Senior Landscape and SET plan preparations.pptx
2025 The Senior Landscape and SET plan preparations.pptx
mansk2
 
CNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscessCNS infections (encephalitis, meningitis & Brain abscess
CNS infections (encephalitis, meningitis & Brain abscess
Mohamed Rizk Khodair
 
Chemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptxChemotherapy of Malignancy -Anticancer.pptx
Chemotherapy of Malignancy -Anticancer.pptx
Mayuri Chavan
 
Cultivation Practice of Onion in Nepal.pptx
Cultivation Practice of Onion in Nepal.pptxCultivation Practice of Onion in Nepal.pptx
Cultivation Practice of Onion in Nepal.pptx
UmeshTimilsina1
 
How to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 PurchaseHow to Manage Amounts in Local Currency in Odoo 18 Purchase
How to Manage Amounts in Local Currency in Odoo 18 Purchase
Celine George
 
Form View Attributes in Odoo 18 - Odoo Slides
Form View Attributes in Odoo 18 - Odoo SlidesForm View Attributes in Odoo 18 - Odoo Slides
Form View Attributes in Odoo 18 - Odoo Slides
Celine George
 
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Redesigning Education as a Cognitive Ecosystem: Practical Insights into Emerg...
Leonel Morgado
 
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
Mental Health Assessment in 5th semester bsc. nursing and also used in 2nd ye...
parmarjuli1412
 
LDMMIA Reiki News Ed3 Vol1 For Team and Guests
LDMMIA Reiki News Ed3 Vol1 For Team and GuestsLDMMIA Reiki News Ed3 Vol1 For Team and Guests
LDMMIA Reiki News Ed3 Vol1 For Team and Guests
LDM Mia eStudios
 
How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18How to Share Accounts Between Companies in Odoo 18
How to Share Accounts Between Companies in Odoo 18
Celine George
 
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptxANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
ANTI-VIRAL DRUGS unit 3 Pharmacology 3.pptx
Mayuri Chavan
 
What is the Philosophy of Statistics? (and how I was drawn to it)
What is the Philosophy of Statistics? (and how I was drawn to it)What is the Philosophy of Statistics? (and how I was drawn to it)
What is the Philosophy of Statistics? (and how I was drawn to it)
jemille6
 
All About the 990 Unlocking Its Mysteries and Its Power.pdf
All About the 990 Unlocking Its Mysteries and Its Power.pdfAll About the 990 Unlocking Its Mysteries and Its Power.pdf
All About the 990 Unlocking Its Mysteries and Its Power.pdf
TechSoup
 
Rock Art As a Source of Ancient Indian History
Rock Art As a Source of Ancient Indian HistoryRock Art As a Source of Ancient Indian History
Rock Art As a Source of Ancient Indian History
Virag Sontakke
 
Pope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptxPope Leo XIV, the first Pope from North America.pptx
Pope Leo XIV, the first Pope from North America.pptx
Martin M Flynn
 
Ad

Please read the comment ins codeExpressionTree.java-------------.pdf

  • 1. Please read the comment ins code ExpressionTree.java ---------------------------------- /** * This is the class for Expression Tree. * Used to create Expression Tree and Evaluate it */ /** * Following logic is used to construct a Tree * Here we use stack for Preparing Tree * Loop through given Expression String * If Character is Operand , Create node and push to stack * If Character is Operator then * 1)Create Node for Operator * 2)Pop 2 nodes from Stack and Made * OpretorNode--> left == first node pop * OpretorNode--> right == second node pop * At the end of creation of Expression Tree, Stack have only one node , which is root of Expression tree */ /** Class ExpressionTree **/ class ExpressionTree { /** class TreeNode * Stored Character ==> Digit(0..9) or a Operator +,-,*,/ * Left Node and Right Node * * **/ class TreeNode { char data; TreeNode left, right; /** constructor **/
  • 2. public TreeNode(char data) { this.data = data; this.left = null; this.right = null; } } /** class StackNode **/ class StackNode { TreeNode treeNode; StackNode next; /** constructor **/ public StackNode(TreeNode treeNode) { this.treeNode = treeNode; next = null; } } private static StackNode top; /** constructor * Constructor takes input string like "+-+7*935*82*625" * Input should be in Prefix notation * **/ public ExpressionTree(String expression) { top = null; //Call Method for prepare expression tree buildTree(expression); } /** function to clear tree **/ public void clear() { top = null; } /** function to push a node **/
  • 3. private void push(TreeNode ptr) { if (top == null) top = new StackNode(ptr); else { StackNode nptr = new StackNode(ptr); nptr.next = top; top = nptr; } } /** function to pop a node * When it find operator pop 2 elements from Stack * * **/ private TreeNode pop() { if (top == null) throw new RuntimeException("Underflow"); else { TreeNode ptr = top.treeNode; top = top.next; return ptr; } } /** function to get top node **/ private TreeNode peek() { return top.treeNode; } /** function to insert character **/ private void insert(char val) { try {
  • 4. //If Operand , Create node and push to Stack if (isDigit(val)) { TreeNode nptr = new TreeNode(val); push(nptr); } //If Operator , Create node and popup 2 elements and make them its right and left else if (isOperator(val)) { TreeNode nptr = new TreeNode(val); nptr.left = pop(); nptr.right = pop(); push(nptr); } } catch (Exception e) { System.out.println("Invalid Expression"); } } /** function to check if digit **/ private boolean isDigit(char ch) { return ch >= '0' && ch <= '9'; } /** function to check if operator **/ private boolean isOperator(char ch) { return ch == '+' || ch == '-' || ch == '*' || ch == '/'; } /** function to convert character to digit **/ private int toDigit(char ch) { return ch - '0'; } /** function to build tree from input */
  • 5. public void buildTree(String eqn) { for (int i = eqn.length() - 1; i >= 0; i--) insert(eqn.charAt(i)); } /** function to evaluate tree */ public double evaluate() { return evaluate(peek()); } /** function to evaluate tree * * */ public double evaluate(TreeNode ptr) { if (ptr.left == null && ptr.right == null) return toDigit(ptr.data); else { double result = 0.0; double left = evaluate(ptr.left); double right = evaluate(ptr.right); char operator = ptr.data; switch (operator) { case '+' : result = left + right; break; case '-' : result = left - right; break; case '*' : result = left * right; break; case '/' : result = left / right; break; default : result = left + right; break; } return result; } } /** function to get postfix expression */ public void postfix()
  • 6. { postOrder(peek()); } /** post order traversal */ private void postOrder(TreeNode ptr) { if (ptr != null) { postOrder(ptr.left); postOrder(ptr.right); System.out.print(ptr.data); } } /** function to get infix expression */ public void infix() { inOrder(peek()); } /** in order traversal */ private void inOrder(TreeNode ptr) { if (ptr != null) { inOrder(ptr.left); System.out.print(ptr.data); inOrder(ptr.right); } } /** function to get prefix expression */ public void prefix() { preOrder(peek()); } /** pre order traversal */ private void preOrder(TreeNode ptr) {
  • 7. if (ptr != null) { System.out.print(ptr.data); preOrder(ptr.left); preOrder(ptr.right); } } } ExpressionTreeTest.java , class to test ------------------------------------------------------------ import java.util.Scanner; /** class ExpressionTreeTest **/ public class ExpressionTreeTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Expression Tree Test"); System.out.println(" Enter equation in prefix form"); /** make object of ExpressionTree **/ ExpressionTree et = new ExpressionTree(scan.next()); System.out.print(" Prefix : "); et.prefix(); System.out.print(" Infix : "); et.infix(); System.out.print(" Postfix : "); et.postfix(); System.out.println(" Evaluated Result : "+ et.evaluate()); } } Solution
  • 8. Please read the comment ins code ExpressionTree.java ---------------------------------- /** * This is the class for Expression Tree. * Used to create Expression Tree and Evaluate it */ /** * Following logic is used to construct a Tree * Here we use stack for Preparing Tree * Loop through given Expression String * If Character is Operand , Create node and push to stack * If Character is Operator then * 1)Create Node for Operator * 2)Pop 2 nodes from Stack and Made * OpretorNode--> left == first node pop * OpretorNode--> right == second node pop * At the end of creation of Expression Tree, Stack have only one node , which is root of Expression tree */ /** Class ExpressionTree **/ class ExpressionTree { /** class TreeNode * Stored Character ==> Digit(0..9) or a Operator +,-,*,/ * Left Node and Right Node * * **/ class TreeNode { char data; TreeNode left, right; /** constructor **/ public TreeNode(char data)
  • 9. { this.data = data; this.left = null; this.right = null; } } /** class StackNode **/ class StackNode { TreeNode treeNode; StackNode next; /** constructor **/ public StackNode(TreeNode treeNode) { this.treeNode = treeNode; next = null; } } private static StackNode top; /** constructor * Constructor takes input string like "+-+7*935*82*625" * Input should be in Prefix notation * **/ public ExpressionTree(String expression) { top = null; //Call Method for prepare expression tree buildTree(expression); } /** function to clear tree **/ public void clear() { top = null; } /** function to push a node **/ private void push(TreeNode ptr)
  • 10. { if (top == null) top = new StackNode(ptr); else { StackNode nptr = new StackNode(ptr); nptr.next = top; top = nptr; } } /** function to pop a node * When it find operator pop 2 elements from Stack * * **/ private TreeNode pop() { if (top == null) throw new RuntimeException("Underflow"); else { TreeNode ptr = top.treeNode; top = top.next; return ptr; } } /** function to get top node **/ private TreeNode peek() { return top.treeNode; } /** function to insert character **/ private void insert(char val) { try { //If Operand , Create node and push to Stack
  • 11. if (isDigit(val)) { TreeNode nptr = new TreeNode(val); push(nptr); } //If Operator , Create node and popup 2 elements and make them its right and left else if (isOperator(val)) { TreeNode nptr = new TreeNode(val); nptr.left = pop(); nptr.right = pop(); push(nptr); } } catch (Exception e) { System.out.println("Invalid Expression"); } } /** function to check if digit **/ private boolean isDigit(char ch) { return ch >= '0' && ch <= '9'; } /** function to check if operator **/ private boolean isOperator(char ch) { return ch == '+' || ch == '-' || ch == '*' || ch == '/'; } /** function to convert character to digit **/ private int toDigit(char ch) { return ch - '0'; } /** function to build tree from input */ public void buildTree(String eqn)
  • 12. { for (int i = eqn.length() - 1; i >= 0; i--) insert(eqn.charAt(i)); } /** function to evaluate tree */ public double evaluate() { return evaluate(peek()); } /** function to evaluate tree * * */ public double evaluate(TreeNode ptr) { if (ptr.left == null && ptr.right == null) return toDigit(ptr.data); else { double result = 0.0; double left = evaluate(ptr.left); double right = evaluate(ptr.right); char operator = ptr.data; switch (operator) { case '+' : result = left + right; break; case '-' : result = left - right; break; case '*' : result = left * right; break; case '/' : result = left / right; break; default : result = left + right; break; } return result; } } /** function to get postfix expression */ public void postfix() {
  • 13. postOrder(peek()); } /** post order traversal */ private void postOrder(TreeNode ptr) { if (ptr != null) { postOrder(ptr.left); postOrder(ptr.right); System.out.print(ptr.data); } } /** function to get infix expression */ public void infix() { inOrder(peek()); } /** in order traversal */ private void inOrder(TreeNode ptr) { if (ptr != null) { inOrder(ptr.left); System.out.print(ptr.data); inOrder(ptr.right); } } /** function to get prefix expression */ public void prefix() { preOrder(peek()); } /** pre order traversal */ private void preOrder(TreeNode ptr) { if (ptr != null)
  • 14. { System.out.print(ptr.data); preOrder(ptr.left); preOrder(ptr.right); } } } ExpressionTreeTest.java , class to test ------------------------------------------------------------ import java.util.Scanner; /** class ExpressionTreeTest **/ public class ExpressionTreeTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Expression Tree Test"); System.out.println(" Enter equation in prefix form"); /** make object of ExpressionTree **/ ExpressionTree et = new ExpressionTree(scan.next()); System.out.print(" Prefix : "); et.prefix(); System.out.print(" Infix : "); et.infix(); System.out.print(" Postfix : "); et.postfix(); System.out.println(" Evaluated Result : "+ et.evaluate()); } }
  翻译: