Download - Szélességi bejárás
SZÉLESSÉGI BEJÁRÁSGréczy Ákos – JKR7ZR
MESEVan egy középkori kisváros, ahol az utcai lámpákat egy korosodó lámpagyújtogató ember gyújtja fel. Egyik este a lámpagyújtogató fáradtnak és gyengének érzi magát, hát szól a barátainak, hogy segítsenek neki az esti munkájában. (Nagyon sok barátja van az illetőnek.) A csapat kimegy este a főtérre, és a következő stratégia szerint gyújtogatja a lámpákat. A főtéren meggyújtják a lámpákat, majd annyi felé oszlik a csapat, ahány főtérről kivezető út van. Mindegyik csapat elindul egy kivezető úton, és út közben felgyújtja a lámpákat. Amikor a csapat egy útelágazáshoz ér, szétoszlik kisebb csapatokra, és mindegyik kisebb csapat tovább indul az elágazás egyik még sötét utcáján. Amikor egy csapat már nem tud tovább menni (város széle, zsákutca, minden lámpa ég a környező utcákban), akkor a csapattagok hazamennek aludni. Ez az elve a szélességi bejárásnak.
A SZÉLESSÉGI BEJÁRÁS ALAPJAI
Célja: Az eljárás célja egy véges gráf összes csúcsának bejárása a kezdőcsúcstól való távolságuk szerinti növekvő sorrendben.
Felhasznált adatszerkezet: sor Műveletigény: Él listást ábrázolás: T(n) = Θ(n) + Ο(e) = Ο(n + e)
(ahol az él listák együttes hossza e) Csúcsmátrixos ábrázolás: T(n) = O(n + n * n) = O(n2 ) A bejárt csúcsok sorrendje „szint folytonos”, azaz először az 1, majd
a 2 távolságra lévő csúcsokat írja ki, majd így tovább… Azonos távolság esetén a sorrendet definiálni kell, de nem kötelező
(pl. a példában betűrend szerint).
A SZÉLESSÉGI BEJÁRÁS ÁBRÁZOLÁSA
A csúcsokat három színnel szemléltetjük: o FEHÉR: mikor a csúcsot még nem értük el
(alapértelmezetten minden csúcs ilyen, kivéve a kezdőcsúcsot)
o SZÜRKE: azok a csúcsok, melyeket elérünk az „új kezdőértéktől” egy csúcsot elérünk
o FEKETE: amikor egy csúcsot beteszünk egy sorba, és a szomszédjait elértük
A SZÉLESSÉGI BEJÁRÁS MENETE
• Kijelölünk egy kezdőcsúcsot
• Megkeressük a csúcs szomszédait (melyek 1 távolságra vannak és mutat beléjük él a csúcsból), ezeket betesszük a sorba, az eredeti csúcsot pedig kiírjuk.
• Ezt folytatjuk a sorban a legelső csúccsal, mint „induló csúccsal”.
• Egy csúcsot csak egyszer tesszük be a sorba, akkor is, ha több rá mutató él is tartozik hozzá.
• Mikor elfogynak a fehér csúcsok, azaz nincs több a sorba betehető csúcs, a szürke csúcsok kiíródnak, és a bejárás kész.
A SZÉLESSÉGI BEJÁRÁS SZEMLÉLTETÉSE
Műveletek:-Sorba:G-Kimenetre:semmi
Sor:GKimenet:
A szélességi bejárás szemléltetése
Műveletek:-Sorba:R A C-Kimenetre: G-Következő: R
Sor:Kimenet:Sor: R A CKimenet: G
A szélességi bejárás szemléltetése
Műveletek:-Sorba: Z C D-Kimenetre: R
Sor:A C Z C DKimenet: G R
A szélességi bejárás szemléltetése
Műveletek:-Sorba:E-Kimenetre: A
Sor:C Z C D EKimenet:G R A
A szélességi bejárás szemléltetése
Műveletek:-Sorba: F-Kimenetre:D
Sor: Z C D E FKimenet: G R A C
A szélességi bejárás szemléltetése
Műveletek:-Sorba: H-Kimenetre: Z
Sor:C D E F HKimenet: G R A C Z
A szélességi bejárás szemléltetése
Műveletek:-Sorba: C-Kimenetre: I
Sor:G H I J KKimenet: G R A C Z C
A szélességi bejárás szemléltetése
Műveletek:-Sorba: J -Kimenetre: D
Sor: E F H I JKimenet: G R A C Z C D
A szélességi bejárás szemléltetése
Műveletek:-Sorba: semmi-Kimenetre: E
Sor: F H I J Kimenet: G R A C Z C D E
A szélességi bejárás szemléltetése
Műveletek:- Mivel minden elfogyott, minden megy a kimenetre
Sor: semmiKimenet: G R A C Z C D E F H I J K
A szélességi bejárás szemléltetése
Műveletek:- Kiürült a sor, a bejárásnak vége!
Sor: semmi Kimenet: G R A C Z C D E F H I J K