Algoritmi/Algoritmi kod neusmerenih grafova
Predstavljanje grafa
[uredi]Susedstvo matrica
[uredi]Susedstvo listi
[uredi]Poređenje
[uredi]Prvo-u-dubinu
[uredi]Pseudokod
[uredi]dfs(vertex w) if w has already been marked visited return mark w as visited for each adjacent vertex v dfs(v)
Osobine
[uredi]Klasifikacija grana
[uredi]Grane stabla
[uredi]Grane koje idu unazad
[uredi]Grane koje idu unapred
[uredi]Unakrsne grane
[uredi]Postoje dobre tehnike od: Yogesh Jakhar
Pretraživanje u širinu
[uredi]Pseudokod
[uredi]bfs ( x ):
q insert x; while (q not empty ) y = remove head q visit y mark y for each z adjacent y q add tail z
Primer
[uredi]Tačnost
[uredi]Analize
[uredi]Upotreba
[uredi]Pretraživanje u širinu se može koristiti u istraživanju šema baza podataka, sa namerom da se pretvori u xml šemu. Ovo se ostvaruje tako što imenujemo korenu tabelu i onda uradimo referentno pretraživanje u širinu. Pretraživanje je obavljeno i referentnim krajevima, tako da ako neka druga tabela ponudi trenutnom čvoru da se pretraži,onda ta tabela ima jedan-do-mnogo odnosa u xml šemi, inače je mnogo-do-jednog.
Klasični problemi kod grafa
[uredi]Topološko sortiranje
[uredi]A topological sort is an ordering of vertices in a directed acyclic graph such that if there is a path from vi to vj, then vj appears after vi in the ordering.
Topološko sortiranje je određivanje redosleda čvorova u direktnom acikličnom grafu tako da ako postoji put od čvora vi do čvora vj, onda se čvor vj pojavljuje posle čvora vi u redosledu.
Dat je graf G. Topološko sortiranje može biti predstavljeno sa sledećim koracima.
- Pronaći bilo koji čvor bez ulaznih grana i ubaciti ga u listu
- Ukloniti ga zajedno sa svojim granama (Sve grane bi trebalo da budu izlazne)
- Ponoviti korak 1 dok nema više čvorova
- Alternativa je da koristite prvo-u-dubinu obrnutim kasnijim redosledom. Ovo znači darekurzivno ubacite čvor nakon posećivanja njegove dece u listi i obrnuti listu. Ovo radi induktivno, jer najdublje dete nema svoje dete i biće prvo ubačeno u listu. Onda njegovi roditelji, pa roditelji njegovih roditelja itd.
Topološko sortiranje je korisno kada je računanje osobina dece, koja zavise od istih osobina roditelja, kao rastojanje od početnog čvora. Ovo dozvoljava traženje najkraće putanje do ciljnog čvora.