suppose have node in tree, how can leaf nodes ancestor node? have defined treenode this:
public class treenode<t> { /** children of node */ private list<treenode<t>> children = new arraylist<treenode<t>>(); /** parent of node, if node root, parent = null */ private treenode<t> parent = null; /** stored data of node */ private t data = null; /** method want implement */ public set<treenode<t>> getallleafnodes() { set<treenode<t>> leafnodes = new hashset<treenode<t>>(); return leafnodes; } }
use recursion.
- if node leaf, return it
- otherwise, return leaf-nodes of children
something (not tested):
public set<treenode<t>> getallleafnodes() { set<treenode<t>> leafnodes = new hashset<treenode<t>>(); if (this.children.isempty()) { leafnodes.add(this); } else { (treenode<t> child : this.children) { leafnodes.addall(child.getallleafnodes()); } } return leafnodes; }
Comments
Post a Comment