Skip to content

Commit 4a5d534

Browse files
committed
Break method chains pt.2
1 parent 351120c commit 4a5d534

File tree

75 files changed

+515
-501
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+515
-501
lines changed

.bin/batchFix.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,11 @@ listDirectories(rootPath).forEach(category => {
3535
}
3636

3737
const newContent = lines.join('\n');
38-
console.log(newContent);
39-
console.log('------------------------------------------------------------');
40-
fs.writeFileSync(filePath, newContent, 'utf8');
38+
if (newContent !== content) {
39+
console.log(newContent);
40+
console.log('------------------------------------------------------------');
41+
fs.writeFileSync(filePath, newContent, 'utf8');
42+
}
4143
});
4244
});
4345
});

Backtracking/Knight's Tour Problem/code.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { Array1DTracer, Array2DTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
1+
const { Tracer, Array1DTracer, Array2DTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
22

33
/*
44
For N>3 the time taken by this algorithm is sufficiently high
@@ -41,9 +41,9 @@ function knightTour(x, y, moveNum) {
4141
const nextY = y + Y[i];
4242

4343
posTracer.patch(0, nextX);
44-
posTracer.delay();
44+
Tracer.delay();
4545
posTracer.patch(1, nextY);
46-
posTracer.delay();
46+
Tracer.delay();
4747
posTracer.depatch(0);
4848
posTracer.depatch(1);
4949
/*
@@ -55,7 +55,7 @@ function knightTour(x, y, moveNum) {
5555

5656
logTracer.println(`Move to ${nextX},${nextY}`);
5757
boardTracer.patch(nextX, nextY, moveNum);
58-
boardTracer.delay();
58+
Tracer.delay();
5959
boardTracer.depatch(nextX, nextY);
6060
boardTracer.select(nextX, nextY);
6161

@@ -66,7 +66,7 @@ function knightTour(x, y, moveNum) {
6666
logTracer.println(`No place to move from ${nextX},${nextY}: Backtrack`);
6767
board[nextX][nextY] = -1; // backtrack
6868
boardTracer.patch(nextX, nextY, -1);
69-
boardTracer.delay();
69+
Tracer.delay();
7070
boardTracer.depatch(nextX, nextY);
7171
boardTracer.deselect(nextX, nextY);
7272
} else {
@@ -81,11 +81,11 @@ pos[0] = 0;
8181
pos[0] = 0;
8282

8383
boardTracer.patch(0, 0, 0);
84-
boardTracer.delay();
84+
Tracer.delay();
8585
posTracer.patch(0, 0);
86-
posTracer.delay();
86+
Tracer.delay();
8787
posTracer.patch(1, 0);
88-
posTracer.delay();
88+
Tracer.delay();
8989
boardTracer.depatch(0, 0);
9090
boardTracer.depatch(0, 0);
9191
posTracer.depatch(0);

Backtracking/N-Queens Problem/code.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { Array2DTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
1+
const { Tracer, Array2DTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
22

33
const N = 4; // just change the value of N and the visuals will reflect the configuration!
44
const board = (function createArray(N) {
@@ -24,7 +24,7 @@ Layout.setRoot(new VerticalLayout([boardTracer, queenTracer, logger]));
2424
boardTracer.set(board);
2525
queenTracer.set(queens);
2626
logger.println(`N Queens: ${N}X${N}matrix, ${N} queens`);
27-
logger.delay();
27+
Tracer.delay();
2828

2929
function validState(row, col, currentQueen) {
3030
for (let q = 0; q < currentQueen; q++) {
@@ -48,28 +48,28 @@ function nQ(currentQueen, currentCol) {
4848
let row = 0;
4949
while ((row < N) && (!found)) {
5050
boardTracer.select(row, currentCol);
51-
boardTracer.delay();
51+
Tracer.delay();
5252
logger.println(`Trying queen ${currentQueen} at row ${row} & col ${currentCol}`);
5353

5454
if (validState(row, currentCol, currentQueen)) {
5555
queens[currentQueen][0] = row;
5656
queens[currentQueen][1] = currentCol;
5757

5858
queenTracer.patch(currentQueen, 0, row);
59-
queenTracer.delay();
59+
Tracer.delay();
6060
queenTracer.patch(currentQueen, 1, currentCol);
61-
queenTracer.delay();
61+
Tracer.delay();
6262
queenTracer.depatch(currentQueen, 0);
63-
queenTracer.delay();
63+
Tracer.delay();
6464
queenTracer.depatch(currentQueen, 1);
65-
queenTracer.delay();
65+
Tracer.delay();
6666

6767
found = nQ(currentQueen + 1, currentCol + 1);
6868
}
6969

7070
if (!found) {
7171
boardTracer.deselect(row, currentCol);
72-
boardTracer.delay();
72+
Tracer.delay();
7373
logger.println(`row ${row} & col ${currentCol} didn't work out. Going down`);
7474
}
7575
row++;

Branch and Bound/Binary Search Tree/insertion.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { Array1DTracer, GraphTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
1+
const { Tracer, Array1DTracer, GraphTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
22

33
const T = {};
44

@@ -8,11 +8,11 @@ const elemTracer = new Array1DTracer(' Elements ').set(elements);
88
const logger = new LogTracer(' Log ');
99
Layout.setRoot(new VerticalLayout([graphTracer, elemTracer, logger]));
1010
graphTracer.log(logger);
11-
graphTracer.delay();
11+
Tracer.delay();
1212

1313
function bstInsert(root, element, parent) { // root = current node , parent = previous node
1414
graphTracer.visit(root, parent);
15-
graphTracer.delay();
15+
Tracer.delay();
1616
const treeNode = T[root];
1717
let propName = '';
1818
if (element < root) {
@@ -27,15 +27,15 @@ function bstInsert(root, element, parent) { // root = current node , parent = pr
2727
graphTracer.addNode(element);
2828
graphTracer.addEdge(root, element);
2929
graphTracer.select(element, root);
30-
graphTracer.delay();
30+
Tracer.delay();
3131
graphTracer.deselect(element, root);
3232
logger.println(`${element} Inserted`);
3333
} else {
3434
bstInsert(treeNode[propName], element, root);
3535
}
3636
}
3737
graphTracer.leave(root, parent);
38-
graphTracer.delay();
38+
Tracer.delay();
3939
}
4040

4141
const Root = elements[0]; // take first element as root
@@ -46,8 +46,8 @@ logger.println(`${Root} Inserted as root of tree `);
4646

4747
for (let i = 1; i < elements.length; i++) {
4848
elemTracer.select(i);
49-
elemTracer.delay();
49+
Tracer.delay();
5050
bstInsert(Root, elements[i]); // insert ith element
5151
elemTracer.deselect(i);
52-
elemTracer.delay();
52+
Tracer.delay();
5353
}

Branch and Bound/Binary Search Tree/search.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { GraphTracer, LogTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
1+
const { Tracer, GraphTracer, LogTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
22

33
const G = [ // G[i][j] indicates whether the path from the i-th node to the j-th node exists or not
44
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
@@ -33,11 +33,11 @@ const tracer = new GraphTracer(' Binary Search Tree ').set(G).layoutTree(5);
3333
const logger = new LogTracer(' Log ');
3434
Layout.setRoot(new VerticalLayout([tracer, logger]));
3535
tracer.log(logger);
36-
tracer.delay();
36+
Tracer.delay();
3737

3838
function bst(item, node, parent) { // node = current node , parent = previous node
3939
tracer.visit(node, parent);
40-
tracer.delay();
40+
Tracer.delay();
4141
if (item === node) { // key found
4242
logger.println(' Match Found ');
4343
} else if (item < node) { // key less than value of current node

Branch and Bound/Binary Search/iterative.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
const { Array1DTracer, ChartTracer, LogTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
1+
const { Tracer, Array1DTracer, ChartTracer, LogTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
22

33
const chart = new ChartTracer();
44
const tracer = new Array1DTracer().chart(chart);
55
const logger = new LogTracer();
66
Layout.setRoot(new VerticalLayout([chart, tracer, logger]));
77
const D = new Randomize.Array1D(15, new Randomize.Integer(0, 50)).sorted().create();
88
tracer.set(D);
9-
tracer.delay();
9+
Tracer.delay();
1010

1111
function BinarySearch(array, element) { // array = sorted array, element = element to be found
1212
let minIndex = 0;
@@ -18,10 +18,10 @@ function BinarySearch(array, element) { // array = sorted array, element = eleme
1818
testElement = array[middleIndex];
1919

2020
tracer.select(minIndex, maxIndex);
21-
tracer.delay();
21+
Tracer.delay();
2222
tracer.patch(middleIndex);
2323
logger.println(`Searching at index: ${middleIndex}`);
24-
logger.delay();
24+
Tracer.delay();
2525
tracer.depatch(middleIndex);
2626
tracer.deselect(minIndex, maxIndex);
2727

Branch and Bound/Binary Search/recursive.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
const { Array1DTracer, ChartTracer, LogTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
1+
const { Tracer, Array1DTracer, ChartTracer, LogTracer, Randomize, Layout, VerticalLayout } = require('algorithm-visualizer');
22

33
const chart = new ChartTracer();
44
const tracer = new Array1DTracer().chart(chart);
55
const logger = new LogTracer();
66
Layout.setRoot(new VerticalLayout([chart, tracer, logger]));
77
const D = new Randomize.Array1D(15, new Randomize.Integer(0, 50)).sorted().create();
88
tracer.set(D);
9-
tracer.delay();
9+
Tracer.delay();
1010

1111
function BinarySearch(array, element, minIndex, maxIndex) { // array = sorted array, element = element to be found, minIndex = low index, maxIndex = high index
1212
if (minIndex > maxIndex) {
@@ -18,10 +18,10 @@ function BinarySearch(array, element, minIndex, maxIndex) { // array = sorted ar
1818
const testElement = array[middleIndex];
1919

2020
tracer.select(minIndex, maxIndex);
21-
tracer.delay();
21+
Tracer.delay();
2222
tracer.patch(middleIndex);
2323
logger.println(`Searching at index: ${middleIndex}`);
24-
logger.delay();
24+
Tracer.delay();
2525
tracer.depatch(middleIndex);
2626
tracer.deselect(minIndex, maxIndex);
2727

Branch and Bound/Depth-Limited Search/code.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { GraphTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
1+
const { Tracer, GraphTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
22

33
const tracer = new GraphTracer();
44
const logger = new LogTracer();
@@ -19,13 +19,13 @@ const G = [ // G[i][j] indicates whether the path from the i-th node to the j-th
1919
];
2020
tracer.set(G);
2121
tracer.layoutTree(0);
22-
tracer.delay();
22+
Tracer.delay();
2323

2424
// This is a sample DLS applications where
2525
// we try to find number of descendant of root within some depth
2626
function DLSCount(limit, node, parent) { // node = current node, parent = previous node
2727
tracer.visit(node, parent);
28-
tracer.delay();
28+
Tracer.delay();
2929
let child = 0;
3030
if (limit > 0) { // cut off the search
3131
for (let i = 0; i < G[node].length; i++) {

Branch and Bound/Topological Sort/code.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { GraphTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
1+
const { Tracer, GraphTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
22

33
const tracer = new GraphTracer();
44
const logger = new LogTracer();
@@ -14,7 +14,7 @@ const G = [
1414
[1, 1, 0, 0, 0, 0],
1515
];
1616
tracer.set(G);
17-
tracer.delay();
17+
Tracer.delay();
1818

1919
const inDegrees = Array(...Array(G.length)).map(Number.prototype.valueOf, 0); // create an Array of G.length number of 0s
2020
const Q = [];
@@ -27,10 +27,10 @@ for (let currNode = 0; currNode < G.length; currNode++) {
2727
if (G[currNode][currNodeNeighbor]) {
2828
logger.println(`${currNodeNeighbor} has an incoming edge from ${currNode}`);
2929
tracer.visit(currNodeNeighbor, currNode);
30-
tracer.delay();
30+
Tracer.delay();
3131
inDegrees[currNodeNeighbor]++;
3232
tracer.leave(currNodeNeighbor, currNode);
33-
tracer.delay();
33+
Tracer.delay();
3434
}
3535
}
3636
}
@@ -40,13 +40,13 @@ logger.println('');
4040
logger.println('Initializing queue with all the sources (nodes with no incoming edges)');
4141
inDegrees.map((indegrees, node) => {
4242
tracer.visit(node);
43-
tracer.delay();
43+
Tracer.delay();
4444
if (!indegrees) {
4545
logger.println(`${node} is a source`);
4646
Q.push(node);
4747
}
4848
tracer.leave(node);
49-
tracer.delay();
49+
Tracer.delay();
5050
});
5151
logger.println(`Done. Initial State of Queue: [ ${String(Q)} ]`);
5252
logger.println('');
@@ -56,16 +56,16 @@ while (Q.length > 0) {
5656
logger.println(`Iteration #${iter}. Queue state: [ ${String(Q)} ]`);
5757
const currNode = Q.shift();
5858
tracer.visit(currNode);
59-
tracer.delay();
59+
Tracer.delay();
6060

6161
for (i = 0; i < G.length; i++) {
6262
if (G[currNode][i]) {
6363
logger.println(`${i} has an incoming edge from ${currNode}. Decrementing ${i}'s in-degree by 1.`);
6464
tracer.visit(i, currNode);
65-
tracer.delay();
65+
Tracer.delay();
6666
inDegrees[i]--;
6767
tracer.leave(i, currNode);
68-
tracer.delay();
68+
Tracer.delay();
6969

7070
if (!inDegrees[i]) {
7171
logger.println(`${i}'s in-degree is now 0. Enqueuing ${i}`);
@@ -74,7 +74,7 @@ while (Q.length > 0) {
7474
}
7575
}
7676
tracer.leave(currNode);
77-
tracer.delay();
77+
Tracer.delay();
7878
logger.println(`In-degrees are: [${String(inDegrees)} ]`);
7979
logger.println('-------------------------------------------------------------------');
8080

Brute Force/Binary Tree Traversal/inOrder.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { Array1DTracer, GraphTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
1+
const { Tracer, Array1DTracer, GraphTracer, LogTracer, Layout, VerticalLayout } = require('algorithm-visualizer');
22

33
const G = [ // G[i][j] indicates whether the path from the i-th node to the j-th node exists or not
44
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
@@ -38,25 +38,25 @@ let index = 0;
3838
function inOrder(root, parent) {
3939
if (root === -1) {
4040
logger.println('No more nodes. Backtracking.');
41-
logger.delay();
41+
Tracer.delay();
4242
return;
4343
}
4444

4545
logger.println(`Reached ${root}`);
4646
treeTracer.visit(root, parent);
47-
treeTracer.delay();
47+
Tracer.delay();
4848

4949
logger.println(` Going left from ${root}`);
50-
logger.delay();
50+
Tracer.delay();
5151
inOrder(T[root][0], root);
5252

5353
logger.println(`Printing ${root}`);
5454
treeTracer.leave(root);
5555
arrayTracer.patch(index++, root);
56-
arrayTracer.delay();
56+
Tracer.delay();
5757

5858
logger.println(` Going right from ${root}`);
59-
logger.delay();
59+
Tracer.delay();
6060
inOrder(T[root][1], root);
6161
}
6262

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy