You are on page 1of 2

Tìm kiếm trên đồ thị:

1. Tìm kiếm theo chiều sâu (sử dụng đệ quy hoặc stack):

void dfs(int u)

d[u]=true;

for (int i=0;i<ke[u].size();++i)

int v=ke[u][i];

if (d[v]==false) dfs(v);

2. Thuật toán tìm kiếm theo chiều rộng:

q.push(x);

while (!q.empty())

int v=q.front();q.pop();

for (int i=0;i<ke[v].size();++i)

int u=ke[v][i];

if (d[u]==false)

d[u]=true;

q.push_back(u);

}
}

if (d[y]==true) cout<<"yes";else cout<<"no";

3. Thành phần liên thông mạnh:

You might also like