Linked List

Bu yazıda basitçe linked list yapısından bahsedeceğim.

Linked List adından da anlaşılacağı gibi bağlı listedir. Yani bir listede hem data tutulur hem de bir sonraki adresi gösteren pointer tutulur. Böylelikle memory’de farklı birbirinden alakasız adreslerde bulunan liste elemanlarını sanki art arda geliyormuş gibi listemizde tutarız.

Avantajları

-Dinamik bir veri yapısı vardır, run time’da allocation ve deallocation imkanı sunarak memory’yi verimli kullanmaya olanak sağlar.

-insertion(ekleme) ve deletion(silme) işlemleri node’ları(düğüm) birbirine bağlayarak kolayca halledilir.

-stack ve queue yapılarını implement etmek kolaydır ve sıkça da kullanılır.

– insertion(ekleme) ve deletion(silme) işlemleri için node’lar birbirine bağlandığından çalışma süresi O(1)’dir.

Dezavantajları

-Ekstradan bir de pointer tuttuklarından fazla yer kaplarlar.

-Liste içinde ilk elemandan son elemana sırayla erişebildiğimizden dolayı bir elemana erişmek için çalışma zamanı O(n)’dir. Array’lerde O(1)’ir.

-Singly Linked List geriye gitmek zordur, 4-5 adımlık işlemler gerekmektedir, doubly  linked list kullanılabilir ancak onun için de bir önceki adresi gösteren pointer eklemek gerekir. Yani linked list için geri gitmek çalışma zamanını ve maliyeti artırır.

Ön bilgi için bu yazı işinize yarayabilir ancak linked list yapısını gerçekten anlamak için iyi bir veri yapıları kitabından çalışmanızı tavsiye ederim.

 

Bu yazı C, Genel kategorisine gönderilmiş ve , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir