hi

i have aproblem

i have atable in database and the table has three colums

branch_no branch_nnnno distance

1 2 5

1 3 7

2 1 5

2 4 10

3 5 15

4 5 5

i need aprogram by vb.net that find the shortest path between any two nodesw

Ezzaral 2,714 Posting Sage Team Colleague Featured Poster

sierrainfo 0 Junior Poster

Try this, maybe it will help:

select * from [tablename] where distance = (select min(distance) from [tablename])

Regards

Sunil Punjabi

<snipped url>

rami2005 0 Newbie Poster

the java ccood is

CODE

```
/*
* Shortest Path Between 2 given cities
* using Floyd's Algorithm
*
*
*
*
*/
import java.io.*;
/**
*
* @author JosÃ© Manuel
*/
public class Main{
public Main() {
}
private static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
// TODO code application logic here
int S[][] = new int [6][6]; /* Creating the adjacency matrix, this is the last adjacency matrix */
S[0][0] = 0;//Defining Values
S[0][1] = 0;
S[0][2] = 0;
S[0][3] = 0;
S[0][4] = 0;
S[0][5] = 0;
S[1][0] = 0;
S[1][1] = 0;
S[1][2] = 2;
S[1][3] = 3;
S[1][4] = 2;
S[1][5] = 4;
S[2][0] = 0;
S[2][1] = 1;
S[2][2] = 0;
S[2][3] = 4;
S[2][4] = 4;
S[2][5] = 4;
S[3][0] = 0;
S[3][1] = 1;
S[3][2] = 4;
S[3][3] = 0;
S[3][4] = 4;
S[3][5] = 4;
S[4][0] = 0;
S[4][1] = 2;
S[4][2] = 2;
S[4][3] = 3;
S[4][4] = 0;
S[4][5] = 3;
S[5][0] = 0;
S[5][1] = 4;
S[5][2] = 4;
S[5][3] = 4;
S[5][4] = 4;
S[5][5] = 0;
System.out.println("Escribe la ciudad de origen");/*Ask for the initial point, from 1 to 5 */
int i = Integer.parseInt(in.readLine());
System.out.println("Escribe la ciudad destino");/*Ask for the final point*/
int j = Integer.parseInt(in.readLine());
int l = j;
int k=0;
String ruta = "";
String ruta0 = "";
if (S[i][j] == j) /*If j = S[i][j] there is a direct conection between i and j */
System.out.println("La ruta mas corta es ir de: " + i + " a " + j );
else{ /* if theres no direct connection between i and j, S[][] has to be evaluated to find the shortest path. */
/*Here is the main problem... this how i programmed the last part of the *algorithm, but it is not
*correct.
*These Whiles has to check if S[i][l] is equal to l if so, there is a direct *connection between i
*and j, if not between i and j you have to pass through S[i][j], and *evaluate this point with
*the new value of l
*/
k = S[i][l];
while ( k != l){
ruta = S[i][l] + "" + ruta + "";
l = S[i][l];
}
k = S[l][j];
while ( k != l){
ruta0 = S[l][j] + "" + ruta0 + "";
l = S[l][j];
}
if(j<i)
System.out.println("La ruta mas corta a tomar es la sigueinte: " + i + " " + ruta +
" " + ruta0 + " "+ j);
else
System.out.println("La ruta mas corta a tomar es la sigueinte: " + i + " " +
ruta0 + " " + ruta + " "+ j);
}
}
}
```

Edited by mike_2000_17 because: * Fixed formatting *

sierrainfo 0 Junior Poster

Try this out,i hope it helps:

*'Add 2 Textboxes and a Button to the Form*

In General Declaration section:

(Declare a 2 Dimensional Array)

Dim input (5, 5) As Integer

```
(In Form_Load event)
input(0, 0) = 0
input(0, 1) = 0
input(0, 2) = 0
input(0, 3) = 0
input(0, 4) = 0
input(0, 5) = 0
input(1, 0) = 0
input(1, 1) = 0
input(1, 2) = 2
input(1, 3) = 3
input(1, 4) = 2
input(1, 5) = 4
input(2, 0) = 0
input(2, 1) = 0
input(2, 2) = 0
input(2, 3) = 4
input(2, 4) = 4
input(2, 5) = 4
input(3, 0) = 0
input(3, 1) = 1
input(3, 2) = 4
input(3, 3) = 0
input(3, 4) = 4
input(3, 5) = 4
input(4, 0) = 0
input(4, 1) = 2
input(4, 2) = 2
input(4, 3) = 3
input(4, 4) = 0
input(4, 5) = 3
input(5, 0) = 0
input(5, 1) = 4
input(5, 2) = 4
input(5, 3) = 4
input(5, 4) = 4
input(5, 5) = 0
```

(in the Button_Click event)

```
Try
'Get input parameters from TextBoxes
MsgBox(input(TextBox1.Text,TextBox2.Text))
Catch ex As Exception
MsgBox(ex.ToString)
End Try
```

Regards

Sunil Punjabi

<snipped url>

rami2005 0 Newbie Poster

i was found the dijkistra algorithim to find the shortestpath

its very amazing

then i solve the prob

thanks alot anuther time

have anice day

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.