Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.HashMap;
- import java.util.LinkedHashSet;
- import java.util.LinkedList;
- import java.util.Map;
- import java.util.Set;
- public class Graph {
- private Map<String, LinkedHashSet<String>> map = new HashMap();
- public void addEdge(String node1, String node2) {
- LinkedHashSet<String> adjacent = map.get(node1);
- if(adjacent==null) {
- adjacent = new LinkedHashSet();
- map.put(node1, adjacent);
- }
- adjacent.add(node2);
- }
- public void addTwoWayVertex(String node1, String node2) {
- addEdge(node1, node2);
- addEdge(node2, node1);
- }
- public boolean isConnected(String node1, String node2) {
- Set adjacent = map.get(node1);
- if(adjacent==null) {
- return false;
- }
- return adjacent.contains(node2);
- }
- public LinkedList<String> adjacentNodes(String last) {
- LinkedHashSet<String> adjacent = map.get(last);
- if(adjacent==null) {
- return new LinkedList();
- }
- return new LinkedList<String>(adjacent);
- }
- }
- import java.util.HashMap;
- import java.util.LinkedHashSet;
- import java.util.LinkedList;
- import java.util.Map;
- import java.util.Set;
- public class Graph {
- private Map<String, LinkedHashSet<String>> map = new HashMap();
- public void addEdge(String node1, String node2) {
- LinkedHashSet<String> adjacent = map.get(node1);
- if(adjacent==null) {
- adjacent = new LinkedHashSet();
- map.put(node1, adjacent);
- }
- adjacent.add(node2);
- }
- public void addTwoWayVertex(String node1, String node2) {
- addEdge(node1, node2);
- addEdge(node2, node1);
- }
- public boolean isConnected(String node1, String node2) {
- Set adjacent = map.get(node1);
- if(adjacent==null) {
- return false;
- }
- return adjacent.contains(node2);
- }
- public LinkedList<String> adjacentNodes(String last) {
- LinkedHashSet<String> adjacent = map.get(last);
- if(adjacent==null) {
- return new LinkedList();
- }
- return new LinkedList<String>(adjacent);
- }
- }
- (A,B)
- Definition
- Atomic Paths A -> B
- Freeing the list
- Atomic Cycle A
- static bool[] visited;//all false
- Stack<int> currentway; initialize empty
- function findnodes(int nextnode)
- {
- if (nextnode==destnode)
- {
- print currentway
- return;
- }
- visited[nextnode]=true;
- Push nextnode to the end of currentway.
- for each node n accesible from nextnode:
- findnodes(n);
- visited[nextnode]=false;
- pop from currenteay
- }
Add Comment
Please, Sign In to add comment