Java
‘da Bağlantılı Liste
Veri Yapısını Nasıl Oluşturursunuz
Element koleksiyonunu etkili bir şekilde yöneten bir veri yapısı oluşturmak programlamada zorlayıcı olabilir. En yaygın kullanılan yapılardan biri Bağlantılı Liste
dir. Bu blog yazısında, Java standart kütüphanesinde zaten mevcut bir sınıf olmasına rağmen, Java
‘da Bağlantılı Liste
oluşturma sürecini sizlere adım adım göstereceğiz.
Problemi Anlamak
Veri yapılarını düşündüğünüzde, muhtemelen dizilere odaklanıyorsunuzdur, ancak bazen bu yapılar yetersiz kalabilir. İşte burada bağlantılı listeler devreye giriyor. Bağlantılı Liste
, elemanları dizi boyutunu değiştirmeye gerek kalmadan verimli bir şekilde ekleyip silmenizi sağlar. Bu yapı, her bir düğümün veri ve bir sonraki düğümün referansını içerdiği bir düğüm dizisinden oluşur.
Yerleşik Seçenek
Java, java.util
paketi içinde yerleşik bir LinkedList
sınıfı sunar; bu pek çok durumda pratik ve uygundur. Ancak kendi uygulamanızı oluşturabilmek, anlayışınızı derinleştirip veri yapısının davranışı üzerinde daha fazla kontrol sahibi olmanızı sağlayabilir.
Kendi Bağlantılı Liste
nizi Oluşturma
Aşağıda, sıfırdan basit bir Bağlantılı Liste
oluşturmayı keşfedeceğiz. Bu eğitimde, düğüm ekleyip silerek temel işlevselliği sağlayan tek yönlü bir bağlantılı listeye odaklanacağız.
Adım 1: Link Sınıfını Tanımla
Öncelikle, listedeki her bir elementi temsil etmek için bir Link
sınıfı oluşturmalıyız. İşte göründüğü şekilde kodu:
class Link {
public int data1;
public double data2;
public Link nextLink;
// Link yapıcı
public Link(int d1, double d2) {
data1 = d1;
data2 = d2;
}
// Link verisini yazdır
public void printLink() {
System.out.print("{" + data1 + ", " + data2 + "} ");
}
}
Adım 2: LinkList Sınıfını Tanımla
Sonra, tüm listeyi temsil edecek bir sınıfa ihtiyacımız var:
class LinkList {
private Link first;
// LinkList yapıcı
public LinkList() {
first = null;
}
// Liste boşsa true döner
public boolean isEmpty() {
return first == null;
}
// Liste başına yeni bir Link ekler
public void insert(int d1, double d2) {
Link link = new Link(d1, d2);
link.nextLink = first;
first = link;
}
// Listenin önündeki linki siler
public Link delete() {
Link temp = first;
if (first == null) {
return null; // veya Exception fırlat
}
first = first.nextLink;
return temp;
}
// Listede tüm linkleri yazdırır
public void printList() {
Link currentLink = first;
System.out.print("Liste: ");
while (currentLink != null) {
currentLink.printLink();
currentLink = currentLink.nextLink;
}
System.out.println("");
}
}
Adım 3: LinkList’i Test Etme
Son olarak, Bağlantılı Liste
mizi test etmek için bir ana metod uygulayalım:
class LinkListTest {
public static void main(String[] args) {
LinkList list = new LinkList();
// Bazı elemanları ekleyin
list.insert(1, 1.01);
list.insert(2, 2.02);
list.insert(3, 3.03);
list.insert(4, 4.04);
list.insert(5, 5.05);
// Listeyi yazdır
list.printList();
// Elemanları sil
while (!list.isEmpty()) {
Link deletedLink = list.delete();
System.out.print("silindi: ");
deletedLink.printLink();
System.out.println("");
}
list.printList();
}
}
Sonuç
Bu blog yazısında, Java
‘da özelleştirilmiş bir Bağlantılı Liste
oluşturmayı, düğüm ekleme, silme ve yazdırma için temel yöntemleri içerecek şekilde ele aldık. Java’nın standart kütüphanesindeki yerel LinkedList
sınıfı birçok uygulama için yeterli olabilir, ancak kendi uygulamanızı oluşturmak, programlama becerilerinizi geliştiren ödüllendirici bir deneyim olacaktır.
İleri İyileştirmeler
Bu temel uygulamayı öğrenip geliştirdikten sonra, aşağıdakileri eklemeyi düşünün:
- Çift bağlı liste: Her düğümün hem bir sonraki hem de önceki düğümlere referansları olmalıdır.
- Orta/Uç Ekle/Sil: Farklı pozisyonlardan düğüm ekleme veya kaldırma yöntemleri.
- Get ve Sırala Yöntemleri: Belirli elemanları almak veya bağlantılı listeyi sıralamak için fonksiyonlar.
Bu iyileştirmelerle tanışmak, yeteneklerinizi bir üst seviyeye taşıyabilir. Mutlu kodlamalar!