본문 바로가기

라이브러리/JAVA

변형 인접리스트

전처리

static class Edge
{
    int next_node;
    Edge next_edge;

    Edge (int next_node, Edge next_edge) 
    { 
        this.next_node = next_node; 
        this.next_edge = next_edge; 
    }
}

 

 

메인

Edge[] graph = new Edge[N+1];

for (int i=1; i<=N-1; i++)
{
    st = new StringTokenizer(input.readLine());

    int u = Integer.parseInt(st.nextToken());
    int v = Integer.parseInt(st.nextToken());

    graph[u] = new Edge(v, graph[u]);
    graph[v] = new Edge(u, graph[v]);
}

 

 

순회

for (Edge edge = graph[current_node]; edge != null; edge = edge.next_edge)
{
    int next_node = edge.next_node;
}

 

'라이브러리 > JAVA' 카테고리의 다른 글

KMP  (0) 2024.10.03
사이클 최소합  (1) 2024.08.10
벨만 포드  (2) 2024.07.28
히스토그램 최대 넓이  (0) 2024.07.15
에라체  (0) 2024.07.08