JAVA| 그래프 표현 방식 2가지 | ArrayList<Integer> 의 사용

728x90

그래프의 표현 방식 2가지

1) ArrayList 타입의 1차원 배열[]

static ArrayList<Integer> A [];

//main에서 사용 시 
A = new ArrayList[n+1];

for(int i=1; i<n+1; i++) {
    A[i].add(new ArrayList<Integer>());
}

for(int i=0; i<m; i++){
    int a = kb.nextInt();
    int b = kb.nextInt();
    A[a].add(b);
    A[b].add(a);
}

2) ArrayList를 갖는 ArrayList<>()

static ArrayList<ArrayList<Integer>> graph;

//main에서
graph = new ArrayList<ArrayList<Integer>>();

for(int i=0; i<=n; i++) {
    graph.add(new ArrayList<Integer>());
}

for(int i=0; i<m; i++){
    int a= kb.nextInt();
  int b =kb.nextInt();
    graph.get(a).add(b);
  graph.get(b).add(a);
}
728x90