저는 자바를 처음 접했고 2 주 동안이 운동에 어려움을 겪었습니다 (학교에서 숙제를 연습했습니다). 토폴로지 정렬을 만들고 모든 가능한 연결을 인쇄해야합니다. 지금 토폴로지 정렬에 대해 많이 읽었지만, 우리는이 특정 코드 행을 가지고 작업해야합니다. 저는 정점 목록이있을 때 위상 정렬을 할 수 있다고 확신합니다. 내 문제는이 주어진 코드에서 모든 정점을 나열하는 방법을 모르겠다. 아무도 나에게 몇 가지 팁이나 리드 또는 아마도 예제를 줄 수 있었나요, 정말 고마워 할 것입니다.그래프의 모든 정점 수를 계산하십시오.
import java.util.*;
public class Answer {
public static void main (String[] args) {
Answer a = new Answer();
a.run();
}
public void run() {
// TODO!!! YOUR TESTS HERE!
Graph g = new Graph ("G");
Vertex a = new Vertex ("A");
Vertex b = new Vertex ("B");
Vertex c = new Vertex ("C");
g.first = a;
a.next = b;
b.next = c;
Edge ab = new Edge ("AB");
Edge ac = new Edge ("AC");
Edge ba = new Edge ("BA");
Edge ca = new Edge ("CA");
a.first = ab;
b.first = ba;
c.first = ca;
ab.next = ac;
ab.target = b;
ac.target = c;
ba.target = a;
ca.target = a;
System.out.println (g);
}
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;
}
// TODO!!! Your Vertex methods here!
} // Vertex
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;
}
// TODO!!! Your Edge methods here!
} // Edge
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();
}
// TODO!!! Your Graph methods here!
} // Graph
}
힌트 : // TODO !!! ... 당신이해야 할 일을하기 위해 코드를 작성하십시오. run() 메서드에서 새 함수를 호출하여 답변을 얻을 수 있습니다. – Randy