Module: Derinlemesine arayın. DFS


Problem

1/12

DFS: Başlangıç ​​(C++)

Theory Click to read/hide

DFS DFS
Önce derinlik araması (DFS), grafiklerdeki ana algoritmalardan biridir. Algoritma O(N + M) şeklinde çalışır.
 
Algoritma
Başlangıç ​​olarak tepeden başlıyoruz, bu tepenin çocuklarını ele alıyoruz ve onları hiç girmemişsek onlardan DFS başlatıyoruz.


Problem

Yönlendirilmemiş bir grafiğin derinliğini başlangıç ​​köşe noktasından S kateden ve tepe noktasından başlayarak tüm köşeleri geçiş sırasına göre çıkaran bir prosedür void dfs (int v) yazın S bir satırda boşlukla ayrılmış.

İlk satır üç sayı içerir N  - grafikteki köşe sayısı, M - kenarların sayısı, S - başlangıç tepe noktası Aşağıdaki M satırlarında 2 değişken Ui ve Vi sağlanır , grafik kenarlarının açıklaması. Girişteki tüm sayılar 1000'i geçmez.

Tüm köşeleri, geçiş sırasına göre  DFS ile çıktılayın.

Yukarıdaki programda g[i][j], i ve j köşeleri arasında bir kenar olduğu anlamına gelir ve kullanılan dizisi ile bu zirveyi ziyaret edip etmediğimizi işaretliyoruz.