AuD
Lecture 'Algorithmen und Datenstrukturen' (code examples)
aud.example.graph.BreadthFirstSearch Class Reference

implements BFS More...

+ Inheritance diagram for aud.example.graph.BreadthFirstSearch:
+ Collaboration diagram for aud.example.graph.BreadthFirstSearch:

Public Member Functions

 BreadthFirstSearch (MyGraph g)
 
String name ()
 get traversal name More...
 
void start (MyNode s0)
 start traversal at node s0 More...
 
- Public Member Functions inherited from aud.example.graph.Traversal
 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

- Public Attributes inherited from aud.example.graph.Traversal
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...
 
- Protected Member Functions inherited from aud.example.graph.Traversal
void initialize ()
 initialize graph for traversal (reset all attributes), provided for convenience to be called by start More...
 
- Protected Attributes inherited from aud.example.graph.Traversal
MyGraph g_ = null
 
int time_ = 0
 

Detailed Description

implements BFS

Definition at line 6 of file BreadthFirstSearch.java.

Constructor & Destructor Documentation

◆ BreadthFirstSearch()

Definition at line 8 of file BreadthFirstSearch.java.

8 {
9 super(g);
10 }

Member Function Documentation

◆ name()

String aud.example.graph.BreadthFirstSearch.name ( )

get traversal name

Reimplemented from aud.example.graph.Traversal.

Definition at line 12 of file BreadthFirstSearch.java.

12{ return "BFS"; };

◆ start()

void aud.example.graph.BreadthFirstSearch.start ( MyNode  s0)

start traversal at node s0

Reimplemented from aud.example.graph.Traversal.

Definition at line 14 of file BreadthFirstSearch.java.

14 {
15 initialize(); // reset all node attributes
16
17 int count=0;
18 Queue<MyNode> open=new Queue<MyNode>();
19 s0.ord=count++;
20 s0.d=0.0;
21
22 showMark(s0);
23
24 open.enqueue(s0);
25
26 while (!open.is_empty()) {
27 if (verbose>0)
28 System.out.println("open="+open.toString());
29
30 MyNode s=open.dequeue();
31
32 showVisit(s);
33
34 for (MyEdge e : g_.getOutEdges(s)) {
35
36 if (verbose>0)
37 System.err.println(e);
38
39 MyNode t=(MyNode) e.destination();
40 if (t==s)
41 t=(MyNode) e.source(); // undirected graph
42
43 if (t.ord<0) { // <=> not marked
44 t.ord=count++;
45 t.p=s;
46 t.d=s.d+(e.hasWeight() ? e.getWeight() : 1.0);
47
48 showMark(t);
49
50 open.enqueue(t);
51 }
52 }
53 }
54 }
int verbose
set verbosity (extra output if >0)
Definition: Traversal.java:15
void initialize()
initialize graph for traversal (reset all attributes), provided for convenience to be called by start
Definition: Traversal.java:34
void showMark(MyNode node)
callback to give visual feedback on marking a node
Definition: Traversal.java:44
Vector< Edge > getOutEdges(Node node)
Definition: GraphAM.java:98

References aud.example.graph.MyNode.d, aud.Queue< T >.dequeue(), aud.Queue< T >.enqueue(), aud.example.graph.Traversal.initialize(), aud.Queue< T >.is_empty(), aud.example.graph.MyNode.ord, aud.example.graph.Traversal.showMark(), aud.Queue< T >.toString(), and aud.example.graph.Traversal.verbose.

+ Here is the call graph for this function:

The documentation for this class was generated from the following file: