- Arrays
- List
- Stack/Queues
- Trees
- Graphs
Bu yazıda ilk üç yapıya değineceğiz.
#Arrays(Diziler)
Dizilere eleman eklerken indis numarasını net belirtmek zorundayız.
Örn: diziadi[5]=5; gibi.
Bu sayede belirttiğimiz indis numarasındaki değeri atamış oluruz.
Artıları +
Dizi elemanlarına hızlı erişim izni vardır.
Matematiksel matrisler gibi işlemlerde dizi haritası kesin sonuçlar döndürür.
Eksileri -
Diziler tanımlanırken uzunluğu net belirtilmelidir.Daha sonradan değiştirilemez.Birçok verinin miktarıda bilinmeyebilir bu yüzden de olumsuz bir tarafıdır.
#List
List'e eleman eklediğimizde eklediğimiz elemanlar dizilerin aksine en sona yerleştirilir.
Artıları +
Dizinin aksine List'in uzunluğu değiştirilebilir.
Eksileri -
Dizilere oranla erişim ve eleman ekleme yavaştır.
Bazı dillerde geçerli olmamakla birlikte yukarıdaki örnekte verdiğimiz gibi dizi haritası gibi kesin sonuçlar döndürmez.
#Stack/Queues
Stack Queues
Evet resimde görüldüğü üzere stack ve queues'te eleman ekleme ve alma işlemleri bu şekilde gerçekleşmekte.Peki bunlar ne gibi yerlerde kullanılır.Örnekleyelim hemen
#Stack
Stack için konuşmak gerekirse varsayalım ki web tarayıcınız açık ve www.google.com'dasınız.
Sizin internet geçmişinizde şu şekildeymiş gibi düşünelim.
Şuanda açık olan : www.google.com
0: www.facebook.com
1: www.twitter.com
2: www.milliyet.com.tr
Başka bir siteye girdiğiniz zaman www.google.com push edilerek var olan verilerin en üstüne yerleşecektir.
0: www.google.com
1: www.facebook.com
2: www.twitter.com
3: www.milliyet.com.tr
Eğer ki tarayıcınızdan geri butonuna tıklarsanız.Bu seferde en üstteki veriyi alarak pop etmiş olacaktır.
Hafızada ki görünüm tekrar bu hale dönecektir.
0: www.facebook.com
1: www.twitter.com
2: www.milliyet.com.tr
#Queues
Elimizde var olan bu şekilde bir liste olsun diyelim.
0: Cem Yılmaz
1: Yılmaz Erdoğan
2: Ata Demirer
Enqueue ederek bir isim eklediğimizde yeni durum bu şekilde olacaktır.
0: Cem Yılmaz
1: Yılmaz Erdoğan
2: Ata Demirer
3: Atalay Demirci
Fakat dequeue edersek en üstteki değer alınacak ve son durum aşağıdaki gibi olacaktır.
0: Yılmaz Erdoğan
1: Ata Demirer
2: Atalay Demirci
Hiç yorum yok:
Yorum Gönder