最后活跃于 2 weeks ago

A basic graph traversal algorithm.

修订 a461ae70c5bc281bed7613975f3b5802a01e215f

graph.nv 原始文件 Playground
1||::(
2 1 -> 2 ;
3 1 -> 3 -> 4 -> 3 -> 2 ;
4
5 trace a path, starting from 1
6)
7
8|:: ($A -> $B -> $C)|
9 :: $A is connected to $B
10 :: ($B -> $C)
11|:: ($A -> $B)|
12 :: $A is connected to $B
13|:: ;|
14 :: clean up
15
16|:: (trace a path, starting from $A)|
17 :: visit $A
18 :: trace a path
19
20|:: $A is connected to $B|
21 :connections: $A $B
22
23|:: visit $A|
24 :: mark $A as visited
25 :: get neighbors for $A
26 :: cross off any visited neighbors
27
28|:: trace a path? :neighbors: $A|
29 :: visit $A
30|:: trace a path|
31
32|:: get neighbors for $A :no more connections:|
33|:: get neighbors for $A? :connections: $A $B?|
34 :: next connection :neighbors: $B
35|:: get neighbors for $A?|
36 :: next connection
37
38|:: next connection :connections: $A $B|
39 :checked connections: $A $B
40|:: next connection|
41 :: reset connections
42 :no more connections:
43
44|:: mark $A as visited :yes:|
45|:: mark $A as visited :no:|
46 :visited: $A
47|:: mark $A as visited?|
48 :: check if $A has been visited before
49
50|:: check if $A has been visited before :visited: $A?|
51 :: reset visited :yes:
52|:: check if $A has been visited before? :visited: $B|
53 :checked visited: $B
54|:: check if $A has been visited before|
55 :: reset visited :no:
56
57|:: cross off any visited neighbors? :yes: :neighbors: $A|
58|:: cross off any visited neighbors? :no: :neighbors: $A|
59 :checked neighbors: $A
60|:: cross off any visited neighbors? :neighbors: $A?|
61 :: check if $A has been visited before
62|:: cross off any visited neighbors|
63 :: reset neighbors
64
65|:: reset connections? :checked connections: $A $B|
66 :connections: $A $B
67|:: reset visited? :checked visited: $A|
68 :visited: $A
69|:: reset neighbors? :checked neighbors: $A|
70 :neighbors: $A
71|:: reset $|
72
73|:: clean up? :neighbors: $A|
74|:: clean up? :visited: $A|
75|:: clean up|