Çift yönlü bağlı liste mantığını anlamak için tek yönlüyü iyi anlamış olmanız önemli tek yönlü bağlı liste konusu hakkındaki yazıma bakabilisiniz :

Çift yönlü bağlı listeler tek yönlü bağlı listelerden yapısal olarak bir pointer daha eklenmiş halidir.Yani tek yönlü bağlı listede pointer olarak next(sonraki) imiz vardi şimdi ise prev(önceki) pointer ımızda eklenicek böylece her düğüm önceki ve sonraki düğümü pointerlar vasıtasıyla tutarlar.

Çift Yönlü Bağlı Liste Temsili Görsel

Yapımızı oluşturalım.Tek yönlüden farklı olarak yukarda bahsettiğim gibi fazladan bi pointer imiz daha olucak.

Yapımızı oluşturduk. Şimdide ekleme fonksiyonlarımızı yazıcaz. Farklı senaryo ve durumlar için bi kaç temel ekleme metodu yazıcaz.

İlk olarak başa ekleme :

Sona ekleme için fonksiyonumuz :

Verilen key(data) in sağına ekleme fonksiyonu:

Verilen Node(düğüm) ün sağına ekleme yapan fonksiyon :

Şimdi ise silme fonksiyonlarımızı yazalım yine ekmede olduğu gibi farklı senaryolar için farklı silme fonksiyonları yazıcaz.

İlk olarak baştan silme fonksiyonu :

Sondan silme fonksiyonumuz :

Ortadan silme fonksiyonumuz :

Listemizi yazdırmak için bi fonksiyon yazıyoruz :

Son olarak main imizde fonksiyonlarımızı kullanalım :

indirmek için Github : https://github.com/ibrahim-ekinci/CiftYonluBagliListe