Bağlı Listeler Nedir?
Bağlı listeler, bilgisayar bilimlerinde yaygın olarak kullanılan dinamik veri yapılarından biridir. Dizilerin aksine, elemanları ardışık bellek konumlarında saklamak zorunda değildir.
Bağlı liste, her biri bir veri ve bir sonraki elemana işaret eden bir işaretçi (veya referans) içeren düğümlerden oluşan bir dizidir.
Adım adım çözümlü örnekler
Basit bir bağlı liste örneği oluşturun.
1. Bir 'Düğüm' (Node) sınıfı tanımlayın: veri ve sonraki düğüme işaretçi içerir. 2. Bir 'Bağlı Liste' (LinkedList) sınıfı tanımlayın: ilk düğüme işaretçi (head) içerir. 3. Başa eleman ekleme fonksiyonu yazın: yeni düğüm oluştur, veri ata, yeni düğümün 'sonraki' işaretçisini mevcut başa ata, başı yeni düğüm yap. 4. Listeyi yazdırma fonksiyonu yazın: baştan başlayarak her düğümün verisini yazdır ve 'sonraki' işaretçisiyle devam et.
Bağlı listeden belirli bir elemanı nasıl silersiniz?
1. Silinecek elemanın değerini bilin. 2. Listenin başından başlayarak ilerleyin. 3. Mevcut düğümün 'sonraki' düğümünün verisini kontrol edin. 4. Eğer 'sonraki' düğüm silinecek elemansa, mevcut düğümün 'sonraki' işaretçisini, silinecek düğümün 'sonraki' işaretçisine bağlayın. 5. Eğer baş eleman silinecekse, listenin başını (head) bir sonraki elemana güncelleyin.
Bilgi kartları
Mini test
S1.Bağlı listede eleman ekleme işlemi, dizilere göre genellikle daha ______.
S2.Bağlı listede rastgele erişim (belirli bir indeksteki elemana doğrudan ulaşma) nasıldır?
S3.Aşağıdakilerden hangisi bağlı listenin avantajlarından biri DEĞİLDİR?
Sık yapılan hatalar
Bağlı listede eleman silerken sadece silinen elemanın işaretçisini güncelleyebilirsin. — Doğrusu: Bağlı listede eleman silerken, silinen elemanın önceki düğümünün işaretçisini, silinen elemanın sonraki düğümüne bağlamalısın.
Bağlı listeler diziler gibi ardışık bellek alanında saklanır. — Doğrusu: Bağlı listelerdeki düğümler bellekte herhangi bir yerde olabilir ve birbirlerine işaretçiler aracılığıyla bağlanırlar.
Sıkça sorulan sorular
Bağlı listeler nerede kullanılır?
Bağlı listeler, dinamik boyut gerektiren uygulamalarda, yığın (stack), kuyruk (queue) gibi veri yapılarının temelini oluşturmada ve bazı algoritmaların (örneğin, graf algoritmaları) uygulanmasında kullanılır.
Diziler ile bağlı listeler arasındaki temel fark nedir?
Diziler sabit boyutludur ve elemanları ardışık bellek konumlarında saklar, bu da rastgele erişimi hızlı yapar. Bağlı listeler ise dinamik boyutludur, elemanları işaretçilerle bağlar ve rastgele erişimi yavaştır ancak ekleme/silme işlemleri daha verimlidir.
Bağlı listenin sonuna eleman eklemek ne kadar sürer?
Tek yönlü bağlı listenin sonuna eleman eklemek için listenin sonuna kadar ilerlemek gerekir, bu nedenle zaman karmaşıklığı O(n)'dir. Ancak, listenin sonunu gösteren ayrı bir işaretçi (tail) tutulursa, bu işlem O(1) zamanında yapılabilir.