Here's a restatement of my approach, with three changes:

1. I have removed the code which permits cyclic graphs (extracting
only acyclic paths from cyclic graphs).

2. I have added G as a parameter which specifies the graph.

3. I have added some whitespace to prevent the mail archive's
anti-spam measures from corrupting the code.


G=: ".;._2]0 :0
 0 1 2 2 3 4 4 5 5 6 7  7  8  9 10 10 11 11 11 12 12 12
 1 2 3 4 5 6 5 7 8 7 9 10 10 11 12 11 13 14 15 16 15 14
)
ST=: {::~&0@[
EN=: {::~&1@[

ROOTPATHS=: ,<,0

extendpath=: ] <@,"1 0 EN #~ ST = {:@]

extendpaths=: ] ~.@(,;) extendpath L:0

leafpaths=: #~ ] -. @ e. }:&.>

paths_to_leaves=: [: leafpaths extendpaths^:_



Example use:
   (#, [: ~. #@>) G paths_to_leaves ROOTPATHS
39 9

And here's the raw code:

   paths_to_leaves f.
[: (#~ (] -.@e. }:&.>)) (] ~.@(, ;) (] <@,"1 0 {::~&1@[ #~ {::~&0@[ =
{:@])L:0)^:_

FYI,

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to