Bağıl Liste Eleman Ekleme ve Silme
Bağıl listeler, elemanları birbirine bağlı düğümlerle depolayan bir veri yapısıdır. Her düğüm, bir veri öğesi ve sonraki düğüme bir işaretçi içerir. Bağıl listeler, elemanların eklenmesi ve silinmesinin verimli bir şekilde yapılabildiği dinamik veri yapılarıdır.
Eleman Ekleme
Bir bağıl listeye eleman eklemek için aşağıdaki adımlar izlenir:
- Yeni bir düğüm oluşturun: Yeni elemanı tutacak yeni bir düğüm oluşturun.
- Yeni düğümü listeye bağlayın: Yeni düğümü, ekleme noktasının önceki düğümüne bağlayın.
- Ekleme noktasını güncelleyin: Ekleme noktasını yeni düğüme güncelleyin.
Örnek:
“`
// Yeni bir düğüm oluşturun
Node newNode = new Node(data);
// Yeni düğümü listeye bağlayın
newNode.next = head;
// Ekleme noktasını güncelleyin
head = newNode;
“`
Eleman Silme
Bir bağıl listeden eleman silmek için aşağıdaki adımlar izlenir:
- Silinecek düğümü bulun: Silinecek düğümü listede bulun.
- Önceki düğümü güncelleyin: Silinecek düğümün önceki düğümünün işaretçisini, silinecek düğümün sonraki düğümüne yönlendirin.
- Silinecek düğümü serbest bırakın: Silinecek düğümü bellekten serbest bırakın.
Örnek:
“`
// Silinecek düğümü bulun
Node nodeToDelete = findNode(data);
// Önceki düğümü güncelleyin
if (nodeToDelete != null) {
nodeToDelete.prev.next = nodeToDelete.next;
}
// Silinecek düğümü serbest bırakın
nodeToDelete = null;
“`
Verimlilik
Bağıl listelerdeki eleman ekleme ve silme işlemleri, aşağıdaki nedenlerle verimlidir:
- Sabit zaman karmaşıklığı: Elemanlar listeye başından veya sonundan eklenebilir veya silinebilir ve bu işlemler sabit zaman karmaşıklığına sahiptir (O(1)).
- Bellek tahsisi yok: Elemanlar eklendiğinde veya silindiğinde bellek tahsisi veya serbest bırakma işlemi gerekmez.
- Yerinde güncelleme: Elemanlar listede yerinde güncellenir, bu da ek kopyalama işlemlerine gerek kalmaz.