Skip to content

Commit f68aafd

Browse files
committed
improve dfs examples
1 parent 3df049b commit f68aafd

File tree

10 files changed

+54
-24
lines changed

10 files changed

+54
-24
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
var tracer = new DirectedGraphTracer();
1+
var tracer = new UndirectedGraphTracer();
22
var logger = new LogTracer();
33
tracer.attach(logger);
4-
var G = DirectedGraph.random(4, .75);
4+
var G = UndirectedGraph.random(5, 1);
55
tracer._setData(G);

algorithm/graph_search/dfs/exploration/code.js

+12-7
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
function DFSExplore(graph, source) {
2-
var stack = [[source, null]], visited = {};
2+
var stack = [[source, null]], visited = [];
33
var node, prev, i, temp;
4+
for (i = 0; i < graph.length; i++) {
5+
visited.push(false);
6+
}
7+
visitedTracer._setData(visited);
48

59
while (stack.length > 0) {
610
temp = stack.pop();
711
node = temp [0];
812
prev = temp [1];
913

10-
if (!visited [node]) {
11-
visited [node] = true;
14+
if (!visited[node]) {
15+
visited[node] = true;
16+
visitedTracer._notify(node, visited[node]);
1217

13-
if (prev !== undefined && graph [node] [prev]) {
14-
tracer._visit(node, prev)._wait();
18+
if (prev !== undefined && graph[node][prev]) {
19+
graphTracer._visit(node, prev)._wait();
1520
} else {
16-
tracer._visit(node)._wait();
21+
graphTracer._visit(node)._wait();
1722
}
1823

1924
for (i = 0; i < graph.length; i++) {
20-
if (graph [node] [i]) {
25+
if (graph[node][i]) {
2126
stack.push([i, node]);
2227
}
2328
}
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
var tracer = new UndirectedGraphTracer();
1+
var graphTracer = new UndirectedGraphTracer();
2+
var visitedTracer = new Array1DTracer('visited');
23
var logger = new LogTracer();
3-
tracer.attach(logger);
4-
var G = UndirectedGraph.random(8, .2);
5-
6-
tracer._setData(G);
4+
graphTracer.attach(logger);
5+
var G = UndirectedGraph.random(8, .3);
6+
graphTracer._setData(G);
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
var tracer = new WeightedDirectedGraphTracer();
1+
var tracer = new WeightedUndirectedGraphTracer();
22
var logger = new LogTracer();
33
tracer.attach(logger);
4-
var G = WeightedDirectedGraph.random(5, 1, 1, 9);
4+
var G = WeightedUndirectedGraph.random(5, 1, 1, 9);
55
tracer._setData(G);
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
var tracer = new WeightedDirectedGraphTracer();
1+
var tracer = new WeightedUndirectedGraphTracer();
22
var logger = new LogTracer();
33
tracer.attach(logger);
4-
var G = WeightedDirectedGraph.random(4, .5);
4+
var G = WeightedUndirectedGraph.random(5, 1);
55
tracer._setData(G);

js/tracer_manager/util/refine_by_type.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
const refineByType = (item) => {
2-
return typeof(item) === 'number' ? refineNumber(item) : refineString(item);
2+
switch (typeof(item)) {
3+
case 'number':
4+
return refineNumber(item);
5+
case 'boolean':
6+
return refineBoolean(item);
7+
default:
8+
return refineString(item);
9+
}
310
};
411

512
const refineString = (str) => {
@@ -10,4 +17,8 @@ const refineNumber = (num) => {
1017
return num === Infinity ? '∞' : num;
1118
};
1219

20+
const refineBoolean = (bool) => {
21+
return bool ? 'T' : 'F';
22+
};
23+
1324
module.exports = refineByType;

public/algorithm_visualizer.js

+16-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/algorithm_visualizer.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/algorithm_visualizer.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/algorithm_visualizer.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)