@@ -93,6 +93,8 @@ class BinaryTree {
93
93
}
94
94
}
95
95
96
+ var globalTree : BinaryTree ;
97
+
96
98
function drawNode ( ctx : CanvasRenderingContext2D , rootValue : number , position : Vector2D ) {
97
99
ctx . fillStyle = "#000000ff" ;
98
100
ctx . textAlign = "center" ;
@@ -301,15 +303,21 @@ function buildCanvas() {
301
303
302
304
var scale = 1 ;
303
305
304
- var tree = new BinaryTree ( 100 ) ;
305
- tree . insertLeft ( 20 ) ;
306
- tree . insertRight ( 500 ) ;
307
- tree . getLeft ( ) . insertLeft ( 10 ) ;
308
- tree . getLeft ( ) . insertRight ( 30 ) ;
306
+ console . log ( globalTree ) ;
307
+
308
+ if ( globalTree == null ) {
309
+ var tree = new BinaryTree ( 100 ) ;
310
+ tree . insertLeft ( 20 ) ;
311
+ tree . insertRight ( 500 ) ;
312
+ tree . getLeft ( ) . insertLeft ( 10 ) ;
313
+ tree . getLeft ( ) . insertRight ( 30 ) ;
314
+
315
+ globalTree = tree ;
316
+ }
309
317
310
- updateTraversals ( tree ) ;
318
+ updateTraversals ( globalTree ) ;
311
319
312
- drawTree ( ctx , tree , canvas . width , scale ) ;
320
+ drawTree ( ctx , globalTree , canvas . width , scale ) ;
313
321
314
322
var insertNumber = document . getElementById ( 'insert-form-input' ) as HTMLInputElement ;
315
323
var insertNumberForm = document . getElementById ( 'insert-form' ) as HTMLElement ;
@@ -325,21 +333,25 @@ function buildCanvas() {
325
333
326
334
if ( userInput && userInput < 1000 ) {
327
335
ctx . clearRect ( 0 , 0 , ctx . canvas . width , ctx . canvas . height ) ;
328
- insert ( tree , userInput ) ;
329
- drawTree ( ctx , tree , canvas . width , scale ) ;
330
- updateTraversals ( tree ) ;
336
+ insert ( globalTree , userInput ) ;
337
+ drawTree ( ctx , globalTree , canvas . width , scale ) ;
338
+ updateTraversals ( globalTree ) ;
331
339
}
340
+
341
+ insertNumber . value = "" ;
332
342
} , false ) ;
333
343
334
344
removeNumberForm . addEventListener ( "submit" , function ( ) {
335
345
let userInput = parseInt ( removeNumber . value ) ;
336
346
337
347
if ( userInput ) {
338
348
ctx . clearRect ( 0 , 0 , ctx . canvas . width , ctx . canvas . height ) ;
339
- remove ( tree , userInput ) ;
340
- drawTree ( ctx , tree , canvas . width , scale ) ;
341
- updateTraversals ( tree ) ;
349
+ remove ( globalTree , userInput ) ;
350
+ drawTree ( ctx , globalTree , canvas . width , scale ) ;
351
+ updateTraversals ( globalTree ) ;
342
352
}
353
+
354
+ removeNumber . value = "" ;
343
355
} , false ) ;
344
356
345
357
randomNumberForm . addEventListener ( "submit" , function ( ) {
@@ -350,6 +362,7 @@ function buildCanvas() {
350
362
let first = randomNums [ 0 ]
351
363
352
364
tree = new BinaryTree ( first ) ;
365
+ globalTree = tree ;
353
366
354
367
for ( let randomNum of randomNums ) {
355
368
insert ( tree , randomNum ) ;
@@ -365,6 +378,8 @@ function buildCanvas() {
365
378
drawTree ( ctx , tree , canvas . width , scale ) ;
366
379
updateTraversals ( tree ) ;
367
380
}
381
+
382
+ randomNumber . value = "" ;
368
383
} , false ) ;
369
384
}
370
385
}
0 commit comments