Bağlı Liste Tipleri
Bu rehberde, bağlı listenin farklı türlerini öğreneceksiniz. Ayrıca c# dilinde kuyruk implementasyonunu göreceksiniz.
Bağlı listenin türlerini öğrenmeden önce bağlı liste veri yapısı hakkında bilgi sahibi olduğunuzdan emin olun.
Bağlı listenin yaygın 3 türü vardır.
Tek Bağlı Liste
En yaygın olanıdır. Her bir düğümün verisi ve sıradaki düğümün adresini taşıyan işaretcisi vardır.
Her bir düğüm şu şekilde temsil edilir:
public class Node
{
public int data;
public Node next;
}
Üç elemanlı tek bağlı bir liste şu şekilde oluşturulabilir:
//Düğümleri oluşturalım ve değer atayalım
Node head;
Node one = new Node { data = 1 };
Node two = new Node { data = 2 };
Node three = new Node { data = 3 };
//Düğümleri bağlayalım
one.next = two;
two.next = three;
three.next = null;
//baştaki düğümün adresini kaydedelim
head = one;
Çift Bağlı Liste
Çift bağlı listede önceki düğümü gösteren bir işaretçi ekliyoruz. Böylece ileri ve geri olmak üzere iki yönde de ilerleyebiliyoruz.
Her bir düğüm şu şekilde temsil edilir:
public class Node
{
public int data;
public Node next;
public Node prev;
}
Üç elemanlı çift bağlı bir liste şu şekilde oluşturulabilir:
//Düğümleri oluşturalım ve değer atayalım
Node head;
Node one = new Node { data = 1 };
Node two = new Node { data = 2 };
Node three = new Node { data = 3 };
//Düğümleri bağlayalım
one.next = two;
one.prev = null;
two.next = three;
two.prev = one;
three.next = null;
three.prev = two;
//baştaki düğümün adresini kaydedelim
head = one;
Dairesel Bağlı Liste
Dairesel bağlı liste, son elemanın ilk elemana bağlı olduğu bağlı listenin bir varyasyonudur. Bu durum, dairesel bir döngü oluşturur.
Dairesel bağlı bir liste, tek bağlı veya çift bağlı olabilir.
Tek bağlı liste için, son elemanın işaretcisi ilk itemi gösterir.
Çift bağlı liste için, ilk elemanın
prev
işaretcisi son elemanı gösterir.
Üç elemanlı dairesel tek bağlı bir liste şu şekilde oluşturulabilir:
//Düğümleri oluşturalım ve değer atayalım
Node head;
Node one = new Node { data = 1 };
Node two = new Node { data = 2 };
Node three = new Node { data = 3 };
//Düğümleri bağlayalım
one.next = two;
two.next = three;
three.next = one;
//baştaki düğümün adresini kaydedelim
head = one;