Skip to content

Commit 059ebdc

Browse files
authored
Merge pull request #9 from adammehaney/7-tree-resets-on-window-update
Tree persistence and field clearing
2 parents 83ef9c6 + 992e502 commit 059ebdc

File tree

1 file changed

+28
-13
lines changed

1 file changed

+28
-13
lines changed

src/typescript/BST.ts

+28-13
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,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

Comments
 (0)