4
4
///<reference path="eventManager.ts"/>
5
5
///<reference path="visitedArray.ts"/>
6
6
7
- var visited : boolean [ ] ;
8
- var bfsQueue : number [ ] ;
9
- var currentNode ;
10
- var highlightEventDuration = 0 ;
11
- var visitEventDuration = 2000 ;
7
+ let visited : boolean [ ] ;
8
+ let bfsQueue : number [ ] ;
9
+ let currentNode : number ;
10
+ let highlightEventDuration = 0 ;
11
+ let visitEventDuration = 2000 ;
12
12
13
13
function startBfs ( startIndex : number ) {
14
- resetVisited ( nodes )
15
- bfsQueue = [ ]
14
+ resetVisited ( nodes ) ;
15
+ bfsQueue = [ ] ;
16
16
currentNode = startIndex ;
17
17
18
18
bfsQueue . push ( startIndex ) ;
19
19
20
20
while ( bfsQueue . length != 0 ) {
21
- var v = bfsQueue . shift ( ) ;
21
+ let v : number = bfsQueue . shift ( ) ;
22
22
popFromBfsQueue ( v ) ;
23
23
visit ( v ) ;
24
24
25
- var adjacent = adjacencyList [ v ] ;
26
- for ( var i = 0 ; i < adjacent . length ; i ++ ) {
27
- var w : number = adjacent [ i ] ;
25
+ let adjacent = adjacencyList [ v ] ;
26
+ for ( let i = 0 ; i < adjacent . length ; i ++ ) {
27
+ let w : number = adjacent [ i ] ;
28
28
if ( ! visited [ w ] && $ . inArray ( w , bfsQueue ) ) {
29
- addToBfsQueue ( w )
30
- bfsQueue . push ( w )
29
+ addToBfsQueue ( w ) ;
30
+ bfsQueue . push ( w ) ;
31
31
}
32
32
}
33
33
}
@@ -36,33 +36,33 @@ function startBfs(startIndex: number) {
36
36
}
37
37
38
38
function addToBfsQueue ( v : number ) {
39
- var forward = function ( id ) {
39
+ let forward = function ( id ) {
40
40
return function ( ) {
41
41
addQueueElement ( id ) ;
42
42
} ;
43
- } ( v )
43
+ } ( v ) ;
44
44
45
- var backwards = function ( id ) {
45
+ let backwards = function ( id ) {
46
46
return function ( ) {
47
47
popQueueElement ( id ) ;
48
48
} ;
49
- } ( v )
49
+ } ( v ) ;
50
50
51
51
manager . addEvent ( new FrontendEvent ( forward , backwards , visitEventDuration ) )
52
52
}
53
53
54
54
function popFromBfsQueue ( v : number ) {
55
- var forward = function ( id ) {
55
+ let forward = function ( id ) {
56
56
return function ( ) {
57
57
popQueueElement ( id ) ;
58
58
} ;
59
- } ( v )
59
+ } ( v ) ;
60
60
61
- var backwards = function ( id ) {
61
+ let backwards = function ( id ) {
62
62
return function ( ) {
63
63
addQueueElement ( id ) ;
64
64
} ;
65
- } ( v )
65
+ } ( v ) ;
66
66
67
67
manager . addEvent ( new FrontendEvent ( forward , backwards , visitEventDuration ) )
68
68
}
@@ -78,8 +78,8 @@ function startDfs(startIndex: number) {
78
78
function dfs ( v : number ) {
79
79
visit ( v ) ;
80
80
81
- var adjacent = adjacencyList [ v ] ;
82
- for ( var i = 0 ; i < adjacent . length ; i ++ ) {
81
+ let adjacent = adjacencyList [ v ] ;
82
+ for ( let i = 0 ; i < adjacent . length ; i ++ ) {
83
83
if ( visited [ adjacent [ i ] ] ) continue ;
84
84
setHighlightEdge ( getEdgeId ( v , adjacent [ i ] ) , true ) ;
85
85
dfs ( adjacent [ i ] ) ;
@@ -89,7 +89,7 @@ function dfs(v: number) {
89
89
}
90
90
91
91
function setHighlightEdge ( edgeId : number , highlight : boolean ) {
92
- var forward = function ( id , h ) {
92
+ let forward = function ( id , h ) {
93
93
return function ( ) {
94
94
if ( h ) {
95
95
$ ( "#edge" + id ) . css ( { "stroke" : "rgb(16, 130, 219)" , "stroke-width" : "6" } ) ;
@@ -98,9 +98,9 @@ function setHighlightEdge(edgeId: number, highlight: boolean) {
98
98
$ ( "#edge" + id ) . css ( { "stroke" : "rgb(0, 0, 0)" , "stroke-width" : "4" } ) ;
99
99
} //remove highlight
100
100
} ;
101
- } ( edgeId , highlight )
101
+ } ( edgeId , highlight ) ;
102
102
103
- var backwards = function ( id , h ) {
103
+ let backwards = function ( id , h ) {
104
104
return function ( ) {
105
105
if ( h ) {
106
106
$ ( "#edge" + id ) . css ( { "stroke" : "rgb(0, 0, 0)" , "stroke-width" : "4" } ) ;
@@ -109,84 +109,84 @@ function setHighlightEdge(edgeId: number, highlight: boolean) {
109
109
$ ( "#edge" + id ) . css ( { "stroke" : "rgb(16, 130, 219)" , "stroke-width" : "6" } ) ;
110
110
} // add highlight
111
111
} ;
112
- } ( edgeId , highlight )
112
+ } ( edgeId , highlight ) ;
113
113
114
114
manager . addEvent ( new FrontendEvent ( forward , backwards , highlightEventDuration ) )
115
115
}
116
116
117
117
function visit ( id : number ) {
118
118
visited [ id ] = true ;
119
- var forward = function ( v , curr ) {
119
+ let forward = function ( v , curr ) {
120
120
return function ( ) {
121
121
$ ( "#node" + curr ) . css ( "border" , "6px solid black" ) ;
122
122
$ ( "#node" + v ) . css ( "background-color" , "rgb(80, 250, 80)" ) ;
123
123
$ ( "#node" + v ) . css ( "border" , "6px solid rgb(16, 130, 219)" ) ;
124
124
$ ( "#insElemNr" + v ) . html ( "<p>" + v + "</p><div> T </div>" ) ;
125
125
$ ( "#insElemNr" + v ) . addClass ( "marked" ) ;
126
126
} ;
127
- } ( id , currentNode )
127
+ } ( id , currentNode ) ;
128
128
129
- var backwards = function ( v , curr ) {
129
+ let backwards = function ( v , curr ) {
130
130
return function ( ) {
131
131
$ ( "#node" + v ) . css ( "background-color" , "white" )
132
132
$ ( "#node" + v ) . css ( "border" , "6px solid black" )
133
133
$ ( "#node" + curr ) . css ( "border" , "6px solid rgb(16, 130, 219)" )
134
134
$ ( "#insElemNr" + v ) . html ( "<p>" + v + "</p><div> F </div>" ) ;
135
135
$ ( "#insElemNr" + v ) . removeClass ( "marked" ) ;
136
136
} ;
137
- } ( id , currentNode )
137
+ } ( id , currentNode ) ;
138
138
139
139
manager . addEvent ( new FrontendEvent ( forward , backwards , visitEventDuration ) ) ;
140
140
currentNode = id ;
141
141
}
142
142
143
143
function resetAfterSearch ( ) {
144
- var forward = function ( curr ) {
144
+ let forward = function ( curr ) {
145
145
return function ( ) {
146
146
$ ( "#node" + curr ) . css ( "border" , "6px solid black" ) ;
147
- for ( var i = 0 ; i < nodes ; i ++ ) {
147
+ for ( let i = 0 ; i < nodes ; i ++ ) {
148
148
$ ( "#node" + i ) . css ( "background-color" , "white" ) ;
149
149
}
150
150
} ;
151
- } ( currentNode )
151
+ } ( currentNode ) ;
152
152
153
- var backwards = function ( curr ) {
153
+ let backwards = function ( curr ) {
154
154
return function ( ) {
155
- $ ( "#node" + curr ) . css ( "border" , "6px solid rgb(16, 130, 219)" )
156
- for ( var i = 0 ; i < nodes ; i ++ ) {
155
+ $ ( "#node" + curr ) . css ( "border" , "6px solid rgb(16, 130, 219)" ) ;
156
+ for ( let i = 0 ; i < nodes ; i ++ ) {
157
157
$ ( "#node" + i ) . css ( "background-color" , "rgb(80, 250, 80)" ) ;
158
158
}
159
159
} ;
160
- } ( currentNode )
160
+ } ( currentNode ) ;
161
161
162
162
manager . addEvent ( new FrontendEvent ( forward , backwards , visitEventDuration ) ) ;
163
163
}
164
164
165
165
function resetVisited ( numNodes : number ) {
166
166
visited = [ ] ;
167
- for ( var i = 0 ; i < numNodes ; i ++ ) visited . push ( false ) ;
167
+ for ( let i = 0 ; i < numNodes ; i ++ ) visited . push ( false ) ;
168
168
setInitialArray ( ) ;
169
169
}
170
170
171
171
function instantCollapseAll ( ) {
172
- for ( var i = 0 ; i < nodes ; i ++ ) {
173
- var width : number = $ ( "#adjList" + i ) . width ( ) ;
172
+ for ( let i = 0 ; i < nodes ; i ++ ) {
173
+ let width : number = $ ( "#adjList" + i ) . width ( ) ;
174
174
$ ( "#adjList" + i ) . css ( { left : - width } ) ;
175
175
}
176
176
}
177
177
178
178
function collapseAdjacencyList ( index : number ) {
179
- for ( var i = 0 ; i < nodes ; i ++ ) {
179
+ for ( let i = 0 ; i < nodes ; i ++ ) {
180
180
$ ( "#adjList" + i ) . finish ( ) ;
181
181
}
182
182
183
- var width : number = $ ( "#adjList" + index ) . width ( ) ;
183
+ let width : number = $ ( "#adjList" + index ) . width ( ) ;
184
184
$ ( "#adjList" + index ) . animate ( { left : - width } ) ;
185
185
186
186
}
187
187
188
188
function expandAdjacencyList ( index : number ) {
189
- for ( var i = 0 ; i < nodes ; i ++ ) {
189
+ for ( let i = 0 ; i < nodes ; i ++ ) {
190
190
$ ( "#adjList" + i ) . finish ( ) ;
191
191
collapseAdjacencyList ( i )
192
192
}
0 commit comments