Hi.
How can I parse a tree (arrays within arrays), for example a tree of
strings, to print all strings ?
Thanks.
Hi.
How can I parse a tree (arrays within arrays), for example a tree of
strings, to print all strings ?
Thanks.
Haris wrote:
Hi.
How can I parse a tree (arrays within arrays), for example a tree of
strings, to print all strings ?Thanks.
tree walking hints at a recursive routine…
def tree_walk(array)
array.each do |item|
if item.class == Array
tree_walk(item)
else
puts item
end
end
end
or for the one-liners among us
def tree_walk(array)
array.each { |item| (item.class == Array)? tree_walk(item) : puts
item }
end
However, I don’t reccomend testing on the item.class. I can’t explain
why very well, but it seems wrong to me. Maybe someone else can…?
Michael M. wrote:
However, I don’t reccomend testing on the item.class. I can’t explain
why very well, but it seems wrong to me. Maybe someone else can…?
I think it’s fine. You need some way to distinguish between a leaf node
and an inner node, and how you do that depends on how your data
structure is built.
Here, the assumption is that inner nodes are Arrays and leaf nodes are
anything else.
From: Michael M. [mailto:[email protected]]
#…
^^^^^^^^^^^^^^^^^^^^
item.is_a? Array
note that the above tree_walk is equivalent to,
puts array
On 04.03.2009 03:51, Haris Bogdanoviæ wrote:
How can I parse a tree (arrays within arrays), for example a tree of
strings, to print all strings ?
Do you want to parse or print? This is totally unclear to me. For
displaying nested structures for debugging purposes, pp will do
require ‘pp’
a = […] # nested
pp a
If you want to parse: you did not provide how the input looks like so
nobody could help you with that.
Kind regards
robert
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs