@@ -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,9 +333,9 @@ 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 }
332340 } , false ) ;
333341
@@ -336,9 +344,9 @@ function buildCanvas() {
336344
337345 if ( userInput ) {
338346 ctx . clearRect ( 0 , 0 , ctx . canvas . width , ctx . canvas . height ) ;
339- remove ( tree , userInput ) ;
340- drawTree ( ctx , tree , canvas . width , scale ) ;
341- updateTraversals ( tree ) ;
347+ remove ( globalTree , userInput ) ;
348+ drawTree ( ctx , globalTree , canvas . width , scale ) ;
349+ updateTraversals ( globalTree ) ;
342350 }
343351 } , false ) ;
344352
@@ -350,6 +358,7 @@ function buildCanvas() {
350358 let first = randomNums [ 0 ]
351359
352360 tree = new BinaryTree ( first ) ;
361+ globalTree = tree ;
353362
354363 for ( let randomNum of randomNums ) {
355364 insert ( tree , randomNum ) ;
0 commit comments