Jump to content
  • entries
    33
  • comments
    0
  • views
    1,227

Dairesel Bağlı Liste (Circularly Linked List)


Doğuhan ELMA

73 views

Dairesel bağlı liste (Circularly Linked List), her düğümün bir sonraki düğüme bir referansını içerdiği ve son düğümün de başlangıç düğümüne referans verdiği bir bağlı liste türüdür. Bu, listede dairesel bir yapı oluşturur, böylece listenin sonundan başına geçiş yapabilirsiniz.

Dairesel bağlı listeler, genellikle uygulamalarda düzenli bir şekilde bir liste üzerinde dönülmesi gerektiğinde kullanılır. Örneğin, bir oyun içindeki karakterler arasında dönerken veya bir çalma listesi içinde şarkılar arasında dönerken kullanılabilir.

1.png

Dairesel Bağlı Liste İmplementasyonu

Dairesel bağlı liste, düğümleri ve metotları içerir. İşte bir Python örneği:

class Node:
    def __init__(self, data=None):
        self.data = data
        self.next = None

class CircularLinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
            self.head.next = self.head # Tek bir düğüm olduğunda, kendisine işaret eder
        else:
            temp = self.head
            while temp.next != self.head: # Son düğüme kadar ilerle
                temp = temp.next
            temp.next = new_node # Son düğümün sonrakine yeni düğümü ata
            new_node.next = self.head # Yeni düğümün sonrakisi baş düğüm olsun

    def print_list(self):
        current = self.head
        while True:
            print(current.data, end=" ")
            current = current.next
            if current == self.head: # Başa dönüldüğünde döngüden çık
                break

Ana Özellikler:

Döngüsel Yapı: Listenin son düğümü, baş düğümüne işaret eder, böylece bir döngü oluşturur.

Yineleme: Dairesel bağlı listede yineleme yaparken, başa dönüldüğünde döngüden çıkmak için ek bir kontrol yapılmalıdır, aksi takdirde sonsuz bir döngü oluşur.

Dairesel bağlı listeler, dairesel bir yapı gerektiren durumlar için kullanışlıdır, ancak bu dairesel yapının, yinelemeler sırasında dikkatlice ele alınması gerektiğinin farkında olunmalıdır.

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...