What is a Doubly Linked List?
Coddy'nin Çift Yönlü Bağlı Liste - Veri Yapıları Serisi #6 kursunda ders 2 / 14.
Bir çift yönlü bağlı liste (doubly linked list), her düğümün bir değer ve iki işaretçi taşıdığı bir düğüm dizisidir: önceki düğüme prev ve sonraki düğüme next. Listenin kendisi her iki ucu da takip eder: head (ilk düğüm) ve tail (son düğüm).
Düğüm başına iki işaretçi ve ekstra tail referansı bize çok şey kazandırır. Sona ekleme artık O(1)'dir (zinciri yürümek yerine doğrudan tail'a atlanır) ve son düğümü kaldırmak da O(1)'dir (çünkü sondan bir önceki düğüme tail.prev üzerinden ulaşabiliriz). Buradaki ödünleşim, düğüm başına daha fazla bellek kullanımı ve her ekleme ve kaldırma işleminde senkronize tutulması gereken daha fazla işaretçidir.
Çift yönlü bağlı liste üzerindeki beş ana işlem şunlardır:
- AddFirst: Listenin başına bir değer ekler.
- AddLast: Listenin sonuna bir değer ekler (O(1)!).
- Get: Belirli bir indeksteki değeri döndürür.
- RemoveLast: Son düğümü siler (O(1)!).
- Size: Şu anda saklanan düğüm sayısını döndürür.
Önce bir Node sınıfı oluşturalım, ardından bunun üzerine DoublyLinkedList yapısını kuralım!
Kendin dene
Bu ders bir kod alıştırması içermiyor.
Çift Yönlü Bağlı Liste - Veri Yapıları Serisi #6 bölümündeki tüm dersler
Kendi başına pratik yap: Online C derleyicisi