@@ -93,6 +93,8 @@ class BinaryTree {
9393 }
9494}
9595
96+ var globalTree : BinaryTree ;
97+
9698function drawNode ( ctx : CanvasRenderingContext2D , rootValue : number , position : Vector2D ) {
9799 ctx . fillStyle = "#000000ff" ;
98100 ctx . textAlign = "center" ;
@@ -301,15 +303,21 @@ function buildCanvas() {
301303
302304 var scale = 1 ;
303305
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+ }
309317
310- updateTraversals ( tree ) ;
318+ updateTraversals ( globalTree ) ;
311319
312- drawTree ( ctx , tree , canvas . width , scale ) ;
320+ drawTree ( ctx , globalTree , canvas . width , scale ) ;
313321
314322 var insertNumber = document . getElementById ( 'insert-form-input' ) as HTMLInputElement ;
315323 var insertNumberForm = document . getElementById ( 'insert-form' ) as HTMLElement ;
@@ -325,21 +333,25 @@ function buildCanvas() {
325333
326334 if ( userInput && userInput < 1000 ) {
327335 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 ) ;
331339 }
340+
341+ insertNumber . value = "" ;
332342 } , false ) ;
333343
334344 removeNumberForm . addEventListener ( "submit" , function ( ) {
335345 let userInput = parseInt ( removeNumber . value ) ;
336346
337347 if ( userInput ) {
338348 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 ) ;
342352 }
353+
354+ removeNumber . value = "" ;
343355 } , false ) ;
344356
345357 randomNumberForm . addEventListener ( "submit" , function ( ) {
@@ -350,6 +362,7 @@ function buildCanvas() {
350362 let first = randomNums [ 0 ]
351363
352364 tree = new BinaryTree ( first ) ;
365+ globalTree = tree ;
353366
354367 for ( let randomNum of randomNums ) {
355368 insert ( tree , randomNum ) ;
@@ -365,6 +378,8 @@ function buildCanvas() {
365378 drawTree ( ctx , tree , canvas . width , scale ) ;
366379 updateTraversals ( tree ) ;
367380 }
381+
382+ randomNumber . value = "" ;
368383 } , false ) ;
369384 }
370385}
0 commit comments