![]() |
AuD
Lecture 'Algorithmen und Datenstrukturen' (code examples)
|
iterative implementation of DFS Traversal like DepthFirstSearch
but as for IterativeDFS1
the order of processed edges differs and nodes are marked before being pushed.
More...
Public Member Functions | |
IterativeDFS2 (MyGraph g) | |
String | name () |
get traversal name More... | |
void | start (MyNode s0) |
start traversal at node s0 More... | |
![]() | |
Traversal (MyGraph g) | |
initiate traversal of g More... | |
abstract String | name () |
get traversal name More... | |
abstract void | start (MyNode s0) |
start traversal at node s0 More... | |
void | showMark (MyNode node) |
callback to give visual feedback on marking a node More... | |
Additional Inherited Members | |
![]() | |
SingleStepper | singlestepper = null |
may halt if single stepper was set More... | |
int | nsteps = 1 |
halt every nsteps steps in time_ More... | |
int | verbose = 0 |
set verbosity (extra output if >0) More... | |
![]() | |
void | initialize () |
initialize graph for traversal (reset all attributes), provided for convenience to be called by start More... | |
![]() | |
MyGraph | g_ = null |
int | time_ = 0 |
iterative implementation of DFS Traversal like DepthFirstSearch
but as for IterativeDFS1
the order of processed edges differs and nodes are marked before being pushed.
The latter means that
Sedgewick (Algorithms, 2nd ed., 1988) gives this algorithm as nonrecursive depth first search but puts some emphasis on the difference to the recursive version.
This version is easily modified to an "optimized" BreadthFirstSearch
by exchanging the aud.Stack
by a aud.Queue
. (Think of what is the difference if you do the same for IterativeDFS1
!)
Definition at line 25 of file IterativeDFS2.java.
Definition at line 27 of file IterativeDFS2.java.
String aud.example.graph.IterativeDFS2.name | ( | ) |
get traversal name
Reimplemented from aud.example.graph.Traversal.
Definition at line 31 of file IterativeDFS2.java.
void aud.example.graph.IterativeDFS2.start | ( | MyNode | s0 | ) |
start traversal at node s0
Reimplemented from aud.example.graph.Traversal.
Definition at line 33 of file IterativeDFS2.java.
References aud.example.graph.MyNode.d, aud.example.graph.Traversal.initialize(), aud.Stack< T >.is_empty(), aud.example.graph.MyNode.ord, aud.Stack< T >.pop(), aud.Stack< T >.push(), aud.example.graph.Traversal.showMark(), aud.adt.AbstractStack< T >.toString(), and aud.example.graph.Traversal.verbose.