ݺߣ

ݺߣShare a Scribd company logo
YZM 2116
Veri Yapıları
Yrd. Doç. Dr. Deniz KILINÇ
Celal Bayar Üniversitesi
Hasan Ferdi Turgutlu Teknoloji Fakültesi
Yazılım Mühendisliği
BÖLÜM - 11
Bu bölümde,
• Graph (Çizge - Graf)
• Terminoloji
• Çizge Kullanım Alanları
• Çizge Gösterimi
– Komşuluk Matrisi
– Komşuluk Listesi
• Çizge Üzerinde Gezinme
– DFS
– BFS
konusuna değinilecektir.
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Çizge (Graph) Giriş
• Köşe (vertex) isimli düğümlerden ve kenar (edge) isimli
köşeleri birbirine bağlayan bağlantılardan oluşan veri
yapısıdır.
• Ağaçlar gibi çizgeler de doğrusal olmayan veri yapıları
grubuna girerler.
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
D
E
A
C
F
B
düğüm
kenar
Çizge (Graph) Giriş (devam…)
• Bir G çizgesi G(V, E) şeklinde gösterilir:
a. V = V(G) Kümesi: Küme elemanları, G’nin düğümleri
(nodes), noktaları (points) veya köşeleri (vertices)
b. E = E(G) Kümesi: Küme elemanları G’nin kenarları
(edges) olarak adlandırılan sırasız düğüm ikililerini
içerir.
• Eğer bir e = {u, v} kenarı varsa, u ve v düğümlerinin
komşu (adjacent or neighbors) olduğu söylenir.
• Bu durumda, u ve v e’nin uç noktaları (endpoints)
olarak adlandırılır ve e’nin u ve v’yi bağladığı
söylenir.
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Çizge (Graph) Giriş (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Çizgeler, düzlemsel diyagramlarla gösterilir.
• V kümesindeki her v düğümü bir nokta (ya da küçük
çember) ile temsil edilir ve her e = {v1, v2} kenarı, v1 ve v2
uç noktalarını bağlayan bir çizgi ile gösterilir.
• Örnek:
V = {A, B, C, D}
E = {e1, e2, e3, e4, e5}
Yönlü ve Yönsüz Kenar
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Yönsüz Kenar (undirected edge):
Çizgi seklinde yönü belirtilmeyen
kenarlar yönsüz kenarlardır.
– Yönsüz kenarlarda (v1,v2) olması ile
(v2,v1) olması arasında fark yoktur.
• Yönlü Kenar (directed edge): Ok
şeklinde gösterilen kenarlar yönlü
kenarlardır.
Terminoloji
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
1. Komşu Köşeler (Adjacent): Aralarında
doğrudan bağlantı (kenar) bulunan i ve j
köşeleri komşudur. Diğer köşe çiftleri
komşu değildir.
2. Bağlantı (incident): Komsu i ve j köşeleri
arasındaki kenar (i, j) bağlantıdır.
3. Bir Kösenin Derecesi (degree): Bir
köşeye bağlı olan kenarların sayısıdır.
Soru1: Komşu olmayan köşeler hangileridir?
Soru2: 1’in derecesi kaçtır?
Terminoloji (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
4. Yönsüz Çizge (undirected graph): Tüm kenarları
yönsüz olan çizgeye yönsüz çizge denilir. Yönsüz
çizgede bir köşe çifti arasında en fazla bir kenar
olabilir.
5. Yönlü Çizge (directed graph, digraph): Tüm
kenarları yönlü olan çizgeye yönlü çizge adı
verilir. Yönlü çizgede bir köşe çifti arasında ters
yönlerde olmak üzere en fazla iki kenar olabilir.
6. Döngü (Loop): (i, i) seklinde gösterilen ve bir
köşeyi kendine bağlayan kenar.
Terminoloji (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Yönlü Çizge ve Döngü (Loop)
• G=(V, E)
• V={0,1,2,3,4}
• E={(0,1), (1,2), (0,3), (3,0), (2,2), (4,3)}
0
1
4
2
3
Terminoloji (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
7. Ağırlıklı (Weighted) Çizge: Çizge kenarları
üzerinde ağırlıkları olabilir. Eğer kenarlar üzerinde
ağırlıklar varsa bu tür çizgelere ağırlıklı/maliyetli
çizge (Weighted Graphs) denir. Ağırlık uygulamadan
uygulamaya değişir.
• Şehirler arasındaki uzaklık
• Routerler arası bant genişliği MANİSA
İZMİR BURSA
4
9
8
Yol (Path)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Bir yol (path) düğümlerin bir sırasıdır (v0, v1, v2,… vk) öyle ki:
– 0 ≤ i < k için , {vi, vi+1} bir kenardır
– 0 ≤ i < k-1 için, vi ≠ vi+2
Yani, kenarlar {vi, vi+1} ≠ {vi+1, vi+2}
• Basit Yol (Simple Path): Tüm düğümlerin farklı olduğu yoldur.
• Daire (Cycle): Başlangıç ve bitiş düğümleri aynı olan basit yol.
• Uzunluk: Bir yol üzerindeki kenarların sayısının toplamıdır.
MANİSA
İZMİR BURSA
4
9
8
Basit Yol: MANİSA, İZMİR
Daire: MANİSA, İZMİR, BURSA, MANİSA
Çizge Kullanım Alanları
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Bilgisayar ağlarında, elektriksel ve diğer ağların
analizinde,
• Kimyasal bileşiklerin moleküler yapılarının
araştırılmasında,
• Ulaşım ağlarında (kara, deniz ve havayolları),
• Planlama projelerinde,
• Sosyal alanlarda ve diğer pek çok alanda
kullanılmaktadır.
Çizge Kullanım Alanları (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Örnek (Generic)
• V = 6 kişi: John, Mary, Joe, Helen, Tom ve Paul,
sırasıyla yaşları: 12, 15, 12, 15, 13 ve 13.
• E ={(x, y) | Eğer x, y den daha genç ise}
John Joe
Mary Helen
Tom Paul
Çizge Kullanım Alanları (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Örnek (Uçuş sistemi)
• Her bir düğüm bir şehri gösterir
• Her bir kenar iki şehir arasındaki doğrudan uçuşu gösterir
• Doğrudan uçuşların sorgulanmasında cevap bir kenardır.
• Bir yere ulaşmak için “A’ dan B’ ye yol varmı” sorusu sorulur.
• Maliyetleri kenarlara bile ekleyebiliriz. (ağırlıklı), daha sonra
“A’dan B’ ye en ucuz yol hangisidir?” diye sorabiliriz.
Çizge Gösterimi
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• İki popüler gösterim bulunmaktadır. Her ikisi de
farklı yönlerden düğüm ve kenar kümelerini gösterir.
1. Komşuluk Matrisi: Çizgeyi göstermek için D
matrisi kullanılır.
2. Komşuluk Listesi: Bağlantılı listelerin bir boyutlu
dizisi kullanılır.
Komşuluk Matrisi
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Komşuluk Matrisi (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
2
4
3
5
1
7
6
9
8
0
0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 1 0
1 0 0 1 1 0 0 0 1 0 1
2 0 1 0 0 1 0 0 0 1 0
3 0 1 0 0 1 1 0 0 0 0
4 0 0 1 1 0 0 0 0 0 0
5 0 0 0 1 0 0 1 0 0 0
6 0 0 0 0 0 1 0 1 0 0
7 0 1 0 0 0 0 1 0 0 0
8 1 0 1 0 0 0 0 0 0 1
9 0 1 0 0 0 0 0 0 1 0
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• İki boyutlu dizi ile gerçekleştirilebilir.
• Uygulaması basittir.
– Kenar yaratmak ve kaldırmak kolaydır.
• Hafızada fazla yer kaplar.
Komşuluk Matrisi (devam…)
Komşuluk Listesi
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Komşuluk Listesi (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
2
4
3
5
1
7
6
9
8
0 0
1
2
3
4
5
6
7
8
9
2 3 7 9
8
1 4 8
1 4 5
2 3
3 6
5 7
1 6
0 2 9
1 8
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Bağlı liste içeren dizi ile gerçekleştirimi yapılır.
• Uygulaması daha karmaşıktır.
• Hafıza kullanımı komşuluk matrisine göre daha
optimaldir.
Komşuluk Listesi (devam…)
Örnek – Yönlü Çizge
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Komşuluk Listesi
Komşuluk Matrisi
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
• Çizge üzerinde dolaşma; çizge düğümleri ve kenarları
üzerinde istenen bir işi yapacak veya bir problemi
çözecek biçimde hareket etmektir.
• Çizge üzerinde dolaşma yapan birçok yaklaşım ve
yöntem bulunmaktadır. En önemli iki tanesi aşağıdaki
gibidir:
– BFS (Breadth First Search) Yöntemi
– DFS (Depth First Search ) Yöntemi
Çizge Üzerinde Gezinme (Traverse)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Depth-First Search (DFS)
• Bir düğümden başla, düğümün bir kenarında o kenar
üzerinde gidilebilecek en uzak düğüme kadar sürdür.
• Geri gel (backtracking) ve diğer kenarı dene.
• Tüm düğümler gezilene kadar devam et.
• Genelde Stack kullanarak gerçekleştirim yapılır.
Breadth-First Search (BFS)
• Başlangıç düğümünden başla ve tüm komşuları ziyaret et.
• Daha sonra komşunun komşularını ziyaret et.
• Başlangıç düğümünden başlayıp dışa doğru dalga gibi
ilerle.
• Genelde Queue kullanarak gerçekleştirim yapılır.
Çizge Üzerinde Gezinme (devam…)
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
DFS Sözde Kod
DFS (Graph G) {
Stack S; Integer x, t;
while (G_ziyaret_edilmeyen_x_düğümüne_sahipse){
visit(x);
push(x,S);
while (S boş değilse){
t := peek(S);
if(t_ziyaret_edilmeyen_y_komşusuna_sahipse)
{
visit(y);
push(y,S);
}
else
pop(S);
}
}
}
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
DFS Gösterim
2
4
5
6
7
8
9
10
11
Çizge
0
1
4
2
5
6
7
8
9
11
10
Gezinme Ağacı
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
BFS Sözde Kod
BFS (Graph G) {
Queue Q;
Integer x, z, y;
while (G_ziyaret_edilmeyen_x_düğümüne_sahipse)
{
visit(x);
Insert(x,Q);
while (Q boş değilse){
z := Remove(Q);
for all (z nin tüm y komşuları için){
visit(y);
Insert(y,Q);
}
}
}
}
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
BFS Gösterim
0
2
4
5
6
7
8
9
10
11
Çizge
0
1 42
5
6 7 8
9
11
10
Gezinme Ağacı
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Çizge Üzerinde Gezinme (devam…)
Video Linki
• http://youtube.com/watch?v=zLZhSSXAwxI
İYİ ÇALIŞMALAR…
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
Yararlanılan Kaynaklar
• Ders Kitabı:
• Data Structures through JAVA, V.V.Muniswamy
• Yardımcı Okumalar:
• Data Structures and Algorithms in Java, Narashima
Karumanchi
• Data Structures, Algorithms and Applications in Java,
Sartaj Sahni
• Algorithms, Robert Sedgewick
Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları

More Related Content

Yzm 2116 Bölüm 11 - Graph - Çizge

  • 1. YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği
  • 2. BÖLÜM - 11 Bu bölümde, • Graph (Çizge - Graf) • Terminoloji • Çizge Kullanım Alanları • Çizge Gösterimi – Komşuluk Matrisi – Komşuluk Listesi • Çizge Üzerinde Gezinme – DFS – BFS konusuna değinilecektir. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 3. Çizge (Graph) Giriş • Köşe (vertex) isimli düğümlerden ve kenar (edge) isimli köşeleri birbirine bağlayan bağlantılardan oluşan veri yapısıdır. • Ağaçlar gibi çizgeler de doğrusal olmayan veri yapıları grubuna girerler. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları D E A C F B düğüm kenar
  • 4. Çizge (Graph) Giriş (devam…) • Bir G çizgesi G(V, E) şeklinde gösterilir: a. V = V(G) Kümesi: Küme elemanları, G’nin düğümleri (nodes), noktaları (points) veya köşeleri (vertices) b. E = E(G) Kümesi: Küme elemanları G’nin kenarları (edges) olarak adlandırılan sırasız düğüm ikililerini içerir. • Eğer bir e = {u, v} kenarı varsa, u ve v düğümlerinin komşu (adjacent or neighbors) olduğu söylenir. • Bu durumda, u ve v e’nin uç noktaları (endpoints) olarak adlandırılır ve e’nin u ve v’yi bağladığı söylenir. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 5. Çizge (Graph) Giriş (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Çizgeler, düzlemsel diyagramlarla gösterilir. • V kümesindeki her v düğümü bir nokta (ya da küçük çember) ile temsil edilir ve her e = {v1, v2} kenarı, v1 ve v2 uç noktalarını bağlayan bir çizgi ile gösterilir. • Örnek: V = {A, B, C, D} E = {e1, e2, e3, e4, e5}
  • 6. Yönlü ve Yönsüz Kenar Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Yönsüz Kenar (undirected edge): Çizgi seklinde yönü belirtilmeyen kenarlar yönsüz kenarlardır. – Yönsüz kenarlarda (v1,v2) olması ile (v2,v1) olması arasında fark yoktur. • Yönlü Kenar (directed edge): Ok şeklinde gösterilen kenarlar yönlü kenarlardır.
  • 7. Terminoloji Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları 1. Komşu Köşeler (Adjacent): Aralarında doğrudan bağlantı (kenar) bulunan i ve j köşeleri komşudur. Diğer köşe çiftleri komşu değildir. 2. Bağlantı (incident): Komsu i ve j köşeleri arasındaki kenar (i, j) bağlantıdır. 3. Bir Kösenin Derecesi (degree): Bir köşeye bağlı olan kenarların sayısıdır. Soru1: Komşu olmayan köşeler hangileridir? Soru2: 1’in derecesi kaçtır?
  • 8. Terminoloji (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları 4. Yönsüz Çizge (undirected graph): Tüm kenarları yönsüz olan çizgeye yönsüz çizge denilir. Yönsüz çizgede bir köşe çifti arasında en fazla bir kenar olabilir. 5. Yönlü Çizge (directed graph, digraph): Tüm kenarları yönlü olan çizgeye yönlü çizge adı verilir. Yönlü çizgede bir köşe çifti arasında ters yönlerde olmak üzere en fazla iki kenar olabilir. 6. Döngü (Loop): (i, i) seklinde gösterilen ve bir köşeyi kendine bağlayan kenar.
  • 9. Terminoloji (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Yönlü Çizge ve Döngü (Loop) • G=(V, E) • V={0,1,2,3,4} • E={(0,1), (1,2), (0,3), (3,0), (2,2), (4,3)} 0 1 4 2 3
  • 10. Terminoloji (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları 7. Ağırlıklı (Weighted) Çizge: Çizge kenarları üzerinde ağırlıkları olabilir. Eğer kenarlar üzerinde ağırlıklar varsa bu tür çizgelere ağırlıklı/maliyetli çizge (Weighted Graphs) denir. Ağırlık uygulamadan uygulamaya değişir. • Şehirler arasındaki uzaklık • Routerler arası bant genişliği MANİSA İZMİR BURSA 4 9 8
  • 11. Yol (Path) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Bir yol (path) düğümlerin bir sırasıdır (v0, v1, v2,… vk) öyle ki: – 0 ≤ i < k için , {vi, vi+1} bir kenardır – 0 ≤ i < k-1 için, vi ≠ vi+2 Yani, kenarlar {vi, vi+1} ≠ {vi+1, vi+2} • Basit Yol (Simple Path): Tüm düğümlerin farklı olduğu yoldur. • Daire (Cycle): Başlangıç ve bitiş düğümleri aynı olan basit yol. • Uzunluk: Bir yol üzerindeki kenarların sayısının toplamıdır. MANİSA İZMİR BURSA 4 9 8 Basit Yol: MANİSA, İZMİR Daire: MANİSA, İZMİR, BURSA, MANİSA
  • 12. Çizge Kullanım Alanları Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Bilgisayar ağlarında, elektriksel ve diğer ağların analizinde, • Kimyasal bileşiklerin moleküler yapılarının araştırılmasında, • Ulaşım ağlarında (kara, deniz ve havayolları), • Planlama projelerinde, • Sosyal alanlarda ve diğer pek çok alanda kullanılmaktadır.
  • 13. Çizge Kullanım Alanları (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Örnek (Generic) • V = 6 kişi: John, Mary, Joe, Helen, Tom ve Paul, sırasıyla yaşları: 12, 15, 12, 15, 13 ve 13. • E ={(x, y) | Eğer x, y den daha genç ise} John Joe Mary Helen Tom Paul
  • 14. Çizge Kullanım Alanları (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Örnek (Uçuş sistemi) • Her bir düğüm bir şehri gösterir • Her bir kenar iki şehir arasındaki doğrudan uçuşu gösterir • Doğrudan uçuşların sorgulanmasında cevap bir kenardır. • Bir yere ulaşmak için “A’ dan B’ ye yol varmı” sorusu sorulur. • Maliyetleri kenarlara bile ekleyebiliriz. (ağırlıklı), daha sonra “A’dan B’ ye en ucuz yol hangisidir?” diye sorabiliriz.
  • 15. Çizge Gösterimi Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • İki popüler gösterim bulunmaktadır. Her ikisi de farklı yönlerden düğüm ve kenar kümelerini gösterir. 1. Komşuluk Matrisi: Çizgeyi göstermek için D matrisi kullanılır. 2. Komşuluk Listesi: Bağlantılı listelerin bir boyutlu dizisi kullanılır.
  • 16. Komşuluk Matrisi Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 17. Komşuluk Matrisi (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları 2 4 3 5 1 7 6 9 8 0 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 2 0 1 0 0 1 0 0 0 1 0 3 0 1 0 0 1 1 0 0 0 0 4 0 0 1 1 0 0 0 0 0 0 5 0 0 0 1 0 0 1 0 0 0 6 0 0 0 0 0 1 0 1 0 0 7 0 1 0 0 0 0 1 0 0 0 8 1 0 1 0 0 0 0 0 0 1 9 0 1 0 0 0 0 0 0 1 0
  • 18. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • İki boyutlu dizi ile gerçekleştirilebilir. • Uygulaması basittir. – Kenar yaratmak ve kaldırmak kolaydır. • Hafızada fazla yer kaplar. Komşuluk Matrisi (devam…)
  • 19. Komşuluk Listesi Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 20. Komşuluk Listesi (devam…) Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları 2 4 3 5 1 7 6 9 8 0 0 1 2 3 4 5 6 7 8 9 2 3 7 9 8 1 4 8 1 4 5 2 3 3 6 5 7 1 6 0 2 9 1 8
  • 21. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Bağlı liste içeren dizi ile gerçekleştirimi yapılır. • Uygulaması daha karmaşıktır. • Hafıza kullanımı komşuluk matrisine göre daha optimaldir. Komşuluk Listesi (devam…)
  • 22. Örnek – Yönlü Çizge Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Komşuluk Listesi Komşuluk Matrisi
  • 23. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları • Çizge üzerinde dolaşma; çizge düğümleri ve kenarları üzerinde istenen bir işi yapacak veya bir problemi çözecek biçimde hareket etmektir. • Çizge üzerinde dolaşma yapan birçok yaklaşım ve yöntem bulunmaktadır. En önemli iki tanesi aşağıdaki gibidir: – BFS (Breadth First Search) Yöntemi – DFS (Depth First Search ) Yöntemi Çizge Üzerinde Gezinme (Traverse)
  • 24. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Depth-First Search (DFS) • Bir düğümden başla, düğümün bir kenarında o kenar üzerinde gidilebilecek en uzak düğüme kadar sürdür. • Geri gel (backtracking) ve diğer kenarı dene. • Tüm düğümler gezilene kadar devam et. • Genelde Stack kullanarak gerçekleştirim yapılır. Breadth-First Search (BFS) • Başlangıç düğümünden başla ve tüm komşuları ziyaret et. • Daha sonra komşunun komşularını ziyaret et. • Başlangıç düğümünden başlayıp dışa doğru dalga gibi ilerle. • Genelde Queue kullanarak gerçekleştirim yapılır. Çizge Üzerinde Gezinme (devam…)
  • 25. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları DFS Sözde Kod DFS (Graph G) { Stack S; Integer x, t; while (G_ziyaret_edilmeyen_x_düğümüne_sahipse){ visit(x); push(x,S); while (S boş değilse){ t := peek(S); if(t_ziyaret_edilmeyen_y_komşusuna_sahipse) { visit(y); push(y,S); } else pop(S); } } }
  • 26. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları DFS Gösterim 2 4 5 6 7 8 9 10 11 Çizge 0 1 4 2 5 6 7 8 9 11 10 Gezinme Ağacı
  • 27. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları BFS Sözde Kod BFS (Graph G) { Queue Q; Integer x, z, y; while (G_ziyaret_edilmeyen_x_düğümüne_sahipse) { visit(x); Insert(x,Q); while (Q boş değilse){ z := Remove(Q); for all (z nin tüm y komşuları için){ visit(y); Insert(y,Q); } } } }
  • 28. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları BFS Gösterim 0 2 4 5 6 7 8 9 10 11 Çizge 0 1 42 5 6 7 8 9 11 10 Gezinme Ağacı
  • 29. Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları Çizge Üzerinde Gezinme (devam…) Video Linki • http://youtube.com/watch?v=zLZhSSXAwxI
  • 30. İYİ ÇALIŞMALAR… Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları
  • 31. Yararlanılan Kaynaklar • Ders Kitabı: • Data Structures through JAVA, V.V.Muniswamy • Yardımcı Okumalar: • Data Structures and Algorithms in Java, Narashima Karumanchi • Data Structures, Algorithms and Applications in Java, Sartaj Sahni • Algorithms, Robert Sedgewick Celal Bayar Üniversitesi – YZM 2116 Veri Yapıları