⍝ Depth-first spanning tree for graph ⍺ from vertex ⍵:
show←{↑(⍳⍴⍵),¨'→',¨⍵} ⍝ show graph
g← {↓⍉↑1 ¯1⌽¨⊂⍵}⍳10 ⍝ "polygon" graph.
show g
1 → 2 10
2 → 3 1
3 → 4 2
4 → 5 3
5 → 6 4
6 → 7 5
7 → 8 6
8 → 9 7
9 → 10 8
10 → 1 9
g dfspan 1 ⍝ depth-first search.
¯1 1 2 3 4 5 6 7 8 9
g span 1 ⍝ compare with breadth-first search.
¯1 1 2 3 4 7 8 9 10 1
g← {⍵∘~¨⍵}⍳8 ⍝ order 8 complete graph.
show g
1 → 2 3 4 5 6 7 8
2 → 1 3 4 5 6 7 8
3 → 1 2 4 5 6 7 8
4 → 1 2 3 5 6 7 8
5 → 1 2 3 4 6 7 8
6 → 1 2 3 4 5 7 8
7 → 1 2 3 4 5 6 8
8 → 1 2 3 4 5 6 7
g dfspan 1 ⍝ depth-first search,
¯1 1 2 3 4 5 6 7
g span 1 ⍝ compare with breadth-first search.
¯1 1 1 1 1 1 1 1
⎕io←0 ⍝ origin 0,
(g-1)dfspan 0 ⍝ depth-first search.
¯1 0 1 2 3 4 5 6
⎕io←1
gx←(2 5)(1 3 6)(2 4 7)(3 8)(1 6 9)(2 5)(3 8)(4 7 12)(5 10 13)(9 14)(12 15)(8 11 16)(9 14)(10 13 15)(11 14 16)(12 15)
gx dfspan 1
¯1 1 2 3 9 5 8 4 10 14 12 8 9 15 11 15
↑⍬ ⍬ ⍬∘dfspan ¨⍳3 ⍝ null 3-graph
¯1 ¯2 ¯2
¯2 ¯1 ¯2
¯2 ¯2 ¯1
⍝∇ dfspan span
Back to: code
Back to: Workspaces