Skip to content

Commit eadc196

Browse files
committed
update BinaryTree handling to use a global instance for tree persistance
1 parent 83ef9c6 commit eadc196

File tree

1 file changed

+22
-13
lines changed

1 file changed

+22
-13
lines changed

src/typescript/BST.ts

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,8 @@ class BinaryTree {
9393
}
9494
}
9595

96+
var globalTree: BinaryTree;
97+
9698
function 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

Comments
 (0)