[jdom-interest] breadth first traversal, nextElement()

Azrael azrael at azrael-uk.f2s.com
Wed Aug 28 09:32:00 PDT 2002

Andres March wrote:
> How is the numbering of your diagram determined?  Would order = branch#  x level# ?  It seems strange to process the elements sequentially in this manner.  From your previous posts I inferred that 11 would be last because it is the deepest child of the last branch.  But my comprehension of your problem was incorrect.  Usually, if I was to parse an entire tree manually I would complete each branch iteratively before beginning on the next.  For example, I would hit 1,2,5,12 before starting on 3,6,7,13,14,8.
> I thought about doing it the way you have written about but it never made sense to me.  You have to go back to the same element multiple times - once to process and the other times to check for children....  I've included the code I commonly use for my method.  Sorry, if it doesn't help.

That's pretty much the difference between a depth first traversal 
(in-order) and a breadth-first traversal.
My project relies on breadth-first traversal.. so it's easier to do 
that.. than alter everything else.. I think :)
I'm sure that there was a good reason for everything working out this 
way... there must be

> public void processAll(rootElem) {
> 	ArrayList childrenList = rootElem.getChildren();
> 	Iterator it = childrenList.iterator();
> 	while( it.hasNext() )  {
> 		Element childElem = it.next();
> 		// do whatever you want with it 
> 		processAll(childElem);
>         	}	


            `0_ O  )   `-.  (     ).`-.__.`)
            (_Y_.)'  ._   )  `._ `. ``-..-'
          _..`--'_..-_/  /--'_.' .'
         ((i).-''  ((i).'  (((.-'

Of all God's creatures there is only one that cannot be made the slave 
of the lash. That one is the cat. If man could be crossed with a cat it 
would improve man, but it would deteriorate the cat.


More information about the jdom-interest mailing list