Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Vertex {
- String id;
- Vertex next;
- Edge first;
- Vertex (String s, Vertex v, Edge e) {
- id = s;
- next = v;
- first = e;
- }
- Vertex (String s) {
- this (s, null, null);
- }
- @Override
- public String toString() {
- return id;
- }
- class Edge {
- String id;
- Vertex target;
- Edge next;
- Edge (String s, Vertex v, Edge e) {
- id = s;
- target = v;
- next = e;
- }
- Edge (String s) {
- this (s, null, null);
- }
- @Override
- public String toString() {
- return id;
- }
- }
- class Graph {
- String id;
- Vertex first;
- Graph (String s, Vertex v) {
- id = s;
- first = v;
- }
- Graph (String s) {
- this (s, null);
- }
- @Override
- public String toString() {
- String nl = System.getProperty ("line.separator");
- StringBuffer sb = new StringBuffer (nl);
- sb.append (id + nl);
- Vertex v = first;
- while (v != null) {
- sb.append (v.toString() + " --> ");
- Edge e = v.first;
- while (e != null) {
- sb.append (e.toString());
- sb.append ("(" + v.toString() + "->"
- + e.target.toString() + ") ");
- e = e.next;
- }
- sb.append (nl);
- v = v.next;
- }
- return sb.toString();
- }
- public ArrayList<Edge> transitiveClosure(ArrayList<Vertex> v)
- {
- Graph g = new Graph("G+");
- ArrayList<Edge> edge = new ArrayList();
- Edge e = null;
- for(Vertex vertex : v)
- {
- System.out.print(vertex);
- }
- int next = 0;
- g.first = v.get(0);
- Vertex tmp = v.get(0);
- if(v.get(next) != null)
- {
- next++;
- tmp = v.get(next);
- e = new Edge(g.first.toString() + tmp);
- edge.add(e);
- //System.out.println(e);
- }
- if(v.get(next) !=null)
- {
- next++;
- tmp = v.get(next);
- e = new Edge(g.first.toString() + tmp);
- edge.add(e);
- }
- System.out.println("");
- return edge;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement