Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

JAVA FINDING ALL LEAF NODE OUT FROM A ROOTED TREE public class TreeNode < E > { public E element ; public TreeNode < E

JAVA FINDING ALL LEAF NODE OUT FROM A ROOTED TREE public class TreeNode<E> { public E element; public TreeNode<E> parent; public List<TreeNode<E>> children; public TreeNode(E element, TreeNode<E> parent) { this.element = element; children = new ArrayList<TreeNode<E>>(); } public TreeNode(E element) { this(element, null); } public void addChild(TreeNode<E> node) { this.children.add(node); node.parent = this; } public String toString() { return element.toString(); } }
 public class RootedTree { private final String PADDING_STRING = "0-"; public TreeNode<String> root = null; public RootedTree(TreeNode<String> node) { this(); root = node; node.parent = null; } public RootedTree(String filename) throws IOException { this(); load(filename); } public RootedTree() { } public void save(String filename) throws IOException { LineWriter writer = new LineWriter(); writer.open(filename); recursiveSave(writer, "", root); writer.close(); } private void recursiveSave(LineWriter writer, String padding, TreeNode<String> current) { if(current != null) { writer.println(padding + current.element.toString()); for(TreeNode<String> child : current.children) { recursiveSave(writer, padding + PADDING_STRING, child); } } } public void load(String filename) throws IOException { LineReader reader = new LineReader(); reader.open(filename); root = new TreeNode<String>(reader.next()); loadRecursively(reader, root, 0); reader.close(); } private void loadRecursively(LineReader reader, TreeNode<String> current, int level) throws IOException { while(reader.hasNext()) { String line = reader.peek(); String[] split = line.split(PADDING_STRING); int newLevel = split.length - 1; String newString = split[newLevel]; if(newLevel > level + 1 || newLevel <= 0) { throw new IOException("Invalid data format."); } else if(newLevel == level + 1) { TreeNode<String> node = new TreeNode<String>(newString); current.addChild(node); reader.next(); loadRecursively(reader, node, newLevel); } else { return; } } }
 // Problem 2 (15 pts): Fill in the getLeafNodes method. This method should return // a list consisting of all of the leaf nodes in the rooted tree. // Note: You are allowed to add helper methods and use recursion. public List<TreeNode<String>> getLeafNodes(){ return null; }

I need help with question #2 Thanks in advance!

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Select Healthcare Classification Systems And Databases

Authors: Katherine S. Rowell, Ann Cutrell

1st Edition

0615909760, 978-0615909769

More Books

Students also viewed these Databases questions

Question

What is a business rule, and what is its purpose in data modeling?

Answered: 1 week ago

Question

=+ Is the information source respected?

Answered: 1 week ago

Question

1. PricewaterhouseCoopers

Answered: 1 week ago

Question

3. SCC Soft Computer

Answered: 1 week ago