Click here to Skip to main content
15,893,486 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
hi.... i want a full java code for finding shortest node in the peer to peer network... please need a help badly...
Posted
Comments
Richard MacCutchan 7-Mar-13 7:50am    
Well you are going to be disappointed. This site is for sharing ideas and helping developers, not for doing your work for you.
ZurdoDev 7-Mar-13 8:10am    
This very well may end up being the solution.
ZurdoDev 7-Mar-13 8:10am    
What do you have so far?
Chaitanya Kshirsagar 7-Mar-13 9:00am    
@ryan i used dijkstras shortest path algorithm... i want to apply this algorithm to find nearest nodes in the peer to peer network.

my code is :import java.util.PriorityQueue;import java.util.List;

import java.util.ArrayList;import java.util.Collections;

class Vertex implements Comparable<vertex>{ public final String name;

public Edge[] adjacencies;

public double minDistance = Double.POSITIVE_INFINITY;

public Vertex previous; public Vertex(String argName) { name = argName; }

public String toString() { return name; }

public int compareTo(Vertex other) {

return Double.compare(minDistance, other.minDistance); }}class Edge{

public final Vertex target; public final double weight;

public Edge(Vertex argTarget, double argWeight)

{ target = argTarget; weight = argWeight; }}public class Dijkstra{

public static void computePaths(Vertex source) {

source.minDistance = 0.;

PriorityQueue<vertex> vertexQueue = new PriorityQueue<vertex>();

vertexQueue.add(source); while (!vertexQueue.isEmpty()) {

Vertex u = vertexQueue.poll(); // Visit each edge exiting u

for (Edge e : u.adjacencies) {

Vertex v = e.target; double weight = e.weight;

double distanceThroughU = u.minDistance + weight;

if (distanceThroughU < v.minDistance) { vertexQueue.remove(v);

v.minDistance = distanceThroughU ; v.previous = u;

vertexQueue.add(v); } } } } public static List<vertex> getShortestPathTo(Vertex target) { List<vertex> path = new ArrayList<vertex>();

for (Vertex vertex = target; vertex != null; vertex = vertex.previous)

path.add(vertex); Collections.reverse(path);

return path; } public static void main(String[] args) {

Vertex v0 = new Vertex("Redvile"); Vertex v1 = new Vertex("Blueville");

Vertex v2 = new Vertex("Greenville"); Vertex v3 = new Vertex("Orangeville");

Vertex v4 = new Vertex("Purpleville");

v0.adjacencies = new Edge[]{ new Edge(v1, 5),

new Edge(v2, 10),

new Edge(v3, 8) };

v1.adjacencies = new Edge[]{ new Edge(v0, 5),

new Edge(v2, 3),

new Edge(v4, 7) };

v2.adjacencies = new Edge[]{ new Edge(v0, 10),

new Edge(v1, 3) };

v3.adjacencies = new Edge[]{ new Edge(v0, 8),

new Edge(v4, 2) };

v4.adjacencies = new Edge[]{ new Edge(v1, 7),

new Edge(v3, 2) };

Vertex[] vertices = { v0, v1, v2, v3, v4 }; computePaths(v0);

for (Vertex v : vertices) {

System.out.println("Distance to " + v + ": " + v.minDistance); List<vertex> path = getShortestPathTo(v);

System.out.println("Path: " + path); } }}
jhez25 8-Mar-13 21:58pm    
i'm sorry but i try to find the solution of your problem.. but i can't find..:(

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900