I got post order and pre order, I\'m stuck on inorder traversal. what am I doing
ID: 3536248 • Letter: I
Question
I got post order and pre order, I'm stuck on inorder traversal. what am I doing wrong? Please help!
This is the part of the code from the Tree24 class.
/* Preorder traversal from the root */
public void preorder() {
preorder(root);
}
/** Preorder traversal from a subtree */
private void preorder(Tree24Node<E> root) {
if (root == null)
return;
for (int i = 0; i < root.elements.size(); i++)
System.out.print(root.elements.get(i) + " ");
for (int i = 0; i < root.child.size(); i++)
preorder(root.child.get(i));
}
/************ Inorder traversal from the root**************/
public void inorder() {
inorder(root);
}
private void inorder(Tree24Node<E> root) {
if (root == null)
return;
for (int i = 0; i < root.elements.size(); i++)
System.out.print(root.elements.get(i) + " ");
for (int i = 0; i < root.child.size(); i++)
inorder(root.child.get(i));
}
/* Postorder traversal from the root */
public void postorder() {
postorder(root);
}
private void postorder(Tree24Node<E> root) {
if (root == null)
return;
for (int i = 0; i < root.child.size(); i++)
postorder(root.child.get(i));
for (int i = 0; i < root.elements.size(); i++)
System.out.print(root.elements.get(i) + " ");
}
Explanation / Answer
//inorder traversal can be done only if node has two children i.e, binary tree .
// Then traversal will be like
//left subtree--->node---->right subtree
/******pseudocode******/
so code will be like below ...with childsize() =2;
/************ Inorder traversal from the root**************/
public void inorder() {
inorder(root);
}
private void inorder(Tree24Node<E> root) {
if (root == null)
return;
inorder(root.child.get(0));
//for (int i = 0; i < root.elements.size(); i++)
System.out.print(root.elements.get(i) + " ");
inorder(root.child.get(1));
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.