Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.72 KB | None | 0 0
  1. package generics;
  2. import java.util.*;
  3. public class Graph<T> {
  4.  
  5.    
  6.     /*erstell dir ne hilfsklasse
  7. die 2 node objekte speichert
  8. und überschreib die hash funktion
  9. indem du den hash von o1 + hash o2 nimmst
  10. und nutz dann als datensturktur ein set*/
  11.     private HashSet<Edge> nodeMap = new HashSet<Edge>();
  12.    
  13.     public void addEdge(T fromNode, T toNode)
  14.     {
  15.         Edge tmp = new Edge(fromNode, toNode);
  16.         nodeMap.add(tmp);
  17.     }
  18.    
  19.     public boolean contains(T node)
  20.     {
  21.         for(Edge edge : nodeMap)
  22.         {
  23.             if(edge.getNode1().equals(node) || edge.getNode2().equals(node))
  24.             {
  25.                 return true;
  26.             }
  27.         }
  28.         return false;
  29.     }
  30.    
  31.     /*public List<T> findPath(T startNode, T endNode)
  32.     {
  33.         List<T> route = new ArrayList<T>();
  34.         if(!nodeMap.containsKey(startNode))
  35.         {
  36.             return null;
  37.         }
  38.         else if(nodeMap.get(startNode).contains(endNode))
  39.         {
  40.             route.add(startNode);
  41.             route.add(endNode);
  42.             return route;
  43.         }
  44.         else
  45.         {
  46.             List<T> tmp = this.recursiveFind(nodeMap.get(startNode),endNode);
  47.             if(!tmp.equals(null))
  48.             {
  49.                 route.add(startNode);
  50.                 for(T key : tmp)
  51.                 {
  52.                     route.add(key);
  53.                 }
  54.                 return route;
  55.             }
  56.         }
  57.         return null;
  58.     }
  59.    
  60.     private List<T> recursiveFind(List<T> list, T endNode)
  61.     {
  62.         if(list.equals(null))
  63.         {
  64.             return null;
  65.         }
  66.         for(T node : list)
  67.         {
  68.             List<T> tmpRoute = new ArrayList<T>();
  69.             if(nodeMap.get(node).contains(endNode))
  70.             {
  71.                 tmpRoute.add(node);
  72.                 tmpRoute.add(endNode);
  73.                 return tmpRoute;
  74.             }
  75.             else
  76.             {
  77.                 List<T> tmp = this.recursiveFind(nodeMap.get(node), endNode);
  78.                 if(!tmp.equals(null))
  79.                 {
  80.                     tmpRoute.add(node);
  81.                     for(T key : tmp)
  82.                     {
  83.                         tmpRoute.add(key);
  84.                     }
  85.                     return tmpRoute;
  86.                 }
  87.             }
  88.         }
  89.         return null;
  90.     }*/
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement