Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 113a0bb

Browse files
fixing infinity wait in all algorithms
1 parent 685ee30 commit 113a0bb

File tree

6 files changed

+39
-15
lines changed

6 files changed

+39
-15
lines changed

‎src/Algorithms/Asearch.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ export function aSearch(grid, start, finish) {
1616
let closed = new PriorityQueue();
1717
let visitedNodesInOrder = []
1818

19-
while (pqueue.size() > 0) {
19+
while (pqueue.size() >= 0) {
20+
21+
if(pqueue.size() === 0) return close;
2022

2123
pqueue.print()
2224

‎src/Algorithms/bfs.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ export function bfs (grid,start,finish) {
1515

1616
while(!!allnodes.length){
1717

18+
if(queue.length === 0) return neighbors;
1819
const current = queue.shift();
20+
1921
const neigh = getUnvisitedNeighbours(current,grid);
2022
short=[]
2123

‎src/Algorithms/biDirectionalBfs.js

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import React from 'react'
2-
import bfs from './bfs'
31
import { getAllNodes } from './Dijkstra';
42

53
export function biDirectionalBfs(grid, start, finish) {
@@ -33,26 +31,38 @@ export function biDirectionalBfs(grid, start, finish) {
3331

3432
let neighborsUnvis = [];
3533

36-
while (queueForward !== [] && queueBackward !== []) {
34+
while (queueForward.length>=0 && queueBackward.length>=0) {
35+
36+
if(queueForward.length === 0 || queueBackward.length === 0) return false;
3737

3838
const currentForwardNode = queueForward.shift(); /* shift() -> pops & returns front node in queue*/
3939
const currentBackwardNode = queueBackward.shift();
4040

41+
42+
43+
4144
const neighsForward = getUnvisitedNeighboursBbfs(currentForwardNode, grid);
4245
const neighsBackward = getUnvisitedNeighboursBbfs(currentBackwardNode, grid);
4346

47+
if(neighsForward.length === 0 || neighsBackward === 0 ) return false;
48+
4449
curForwardLevelNodes = [];
4550
curBackwardLevelNodes = [];
4651

47-
updateUnvisitedNeighbors(currentForwardNode, grid);
52+
letval=updateUnvisitedNeighbors(currentForwardNode, grid);
4853
updateUnvisitedNeighbors(currentBackwardNode, grid);
4954

55+
// if(val === 2) return [neighbors, neighsForward[i], ];
56+
5057
for (let i = 0; i < neighsForward.length || i < neighsBackward.length; i++) {
5158

5259
// visits all the currentForwardNodes neighbours, if any
5360
if (i < neighsForward.length) {
5461

5562
let sur = getSurroundings(neighsForward[i], grid);
63+
// if (neighsForward[i].isVisited === true) return [neighbors, neighsForward[i], sur[0]];
64+
// if(sur.length === 0)
65+
5666
for (let j = 0; j < sur.length; j++) {
5767

5868
// if forward nodes meet backward nodes, the we found a path & return it
@@ -74,6 +84,8 @@ export function biDirectionalBfs(grid, start, finish) {
7484
// visits all the currentBackwardNodes neighbours, if any
7585
if (i < neighsBackward.length) {
7686
let sur = getSurroundings(neighsBackward[i], grid);
87+
// if(sur.length === 0) return [neighbors, neighsBackward[i], sur[0]];
88+
7789
for (let j = 0; j < sur.length; j++) {
7890

7991
// if forward nodes meet backward nodes, the we found a path & return it
@@ -95,12 +107,15 @@ export function biDirectionalBfs(grid, start, finish) {
95107
}
96108
neighbors = [...neighbors, ...curForwardLevelNodes, ...curBackwardLevelNodes]
97109
}
110+
111+
// if ( queueForward === [] ) return [neighbors,neighbors];
112+
// && queueBackward !== [];
98113
}
99114

100115
function updateUnvisitedNeighbors(node, grid) {
101116
/** Updates the distances of unvisited nodes */
102117
const unvisitedNeighbors = getUnvisitedNeighboursBbfs(node, grid);
103-
118+
// if(unvisitedNeighbors.length ===0 ) return 2;
104119
for (const neighbor of unvisitedNeighbors) {
105120
neighbor.previousNode = node;
106121
}

‎src/Algorithms/dfs.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ export function dfs(grid, start, finish) {
88
stack.push(start);
99
start.isVisited = true;
1010

11-
while(stack.length > 0) {
11+
while(stack.length >= 0) {
12+
if(stack.length === 0) return visitedNodes;
13+
1214
const current = stack.pop();
1315
const neighbours = getUnvisitedNeighbours(current,grid);
1416
updateUnvisitedNeighbors(current,grid);

‎src/Algorithms/greedybfs.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ export function greedyBFS(grid, start, finish) {
77
const pqueue = [];
88
pqueue.push([start, -1]);
99

10-
while(pqueue.length > 0) {
10+
while(pqueue.length >=0 ) {
11+
if(pqueue.length === 0) return visitedNodes;
12+
1113
sortNodesByDistance(pqueue);
1214
const node_dist = pqueue.shift();
1315
const nearestNode = node_dist[0];

‎src/Components/GridLayoutComponent.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -535,9 +535,6 @@ class GridLayout extends Component {
535535

536536
this.animateDijkstra(visitedNodes, shortestPath);
537537

538-
console.log("running true");
539-
540-
console.log('running false')
541538
}
542539

543540
visuaizeBFS() {
@@ -578,14 +575,18 @@ class GridLayout extends Component {
578575
console.log('bbfs');
579576
console.log(visitedNodes);
580577

581-
const shortestPath2 = getNodesInShortestPathOrderBbfs(visitedNodes[1]);
582-
const shortestPath1 = getNodesInShortestPathOrderBbfs(visitedNodes[2]);
578+
// if(visitedNodes !== false)
579+
// {
580+
const shortestPath2 = getNodesInShortestPathOrderBbfs(visitedNodes[1]);
581+
const shortestPath1 = getNodesInShortestPathOrderBbfs(visitedNodes[2]);
583582

584583

585-
console.log(shortestPath1, shortestPath2);
584+
console.log(shortestPath1, shortestPath2);
586585

587-
this.animateBbfs(visitedNodes[0], shortestPath1, shortestPath2);
586+
this.animateBbfs(visitedNodes[0], shortestPath1, shortestPath2);
588587

588+
// }
589+
589590
}
590591

591592
visuaizeDFS() {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /