각 정점마다 연결된 정점들 배열로 만들기
const int V = 4;
vector<int> adj[V];
// 0 : 1,2
adj[0].push_back(1);
adj[0].push_back(2);
// 1: 0
adj[1].push_back(0);
// 2: 0
adj[2].push_back(0);
연결리스트
VS 벡터
인접리스트를 구현할 때 많이 사용되는 연산은
- 마지막 요소에 삽입
- 특정 요소 탐색
이기 때문에 벡터로 구현해도 무방함.
const int V = 10;
vector<int> adj[10];
adj[1].push_back(2);
adj[1].push_back(3);
adj[2].push_back(1);
adj[3].push_back(1);
adj[3].push_back(4);
adj[4].push_back(3);
bool visited[V];
Visit(int u)
{
visited[u] = true;
for(int i : adj[u])
{
if (visited[i])
continue;
Visit(i);
}
return;
}
for(int i=0; i<V; i++)
{
if (adj[i].size() && !visited[i]) Visit(i);
}
유익한 정보를 얻을 수 있어서 기쁩니다.