Positional List, belirli bir pozisyona erişim sağlamak için uygun bir veri yapısıdır, bu da çeşitli sıralama algoritmalarının uygulanmasını mümkün kılar. Aşağıda, bir Positional List'i sıralamanın bir yolu olan Insertion Sort algoritmasının bir uygulamasını bulacaksınız.
Insertion Sort İle Positional List Sıralama
Insertion Sort, bitişik öğeleri karşılaştırarak ve gerekirse değiştirerek çalışır. Positional List içindeki elemanlar arasında bu karşılaştırmaları yapmak oldukça kolaydır.
Positional Doubly Linked List, pozisyonlarını takip etmek istediğiniz öğelerle çalışmanız gerektiğinde kullanabileceğiniz bir veri yapısıdır. İkili bağlı liste (Doubly Linked List) üzerine inşa edilmiştir, bu nedenle her düğüm bir sonraki düğüme ve bir önceki düğüme işaret eder.
class PositionalList:
class Node:
def __init__(self, element, prev, next):
self.element = element
self.prev = prev
self.next = next
class Position:
def __in
Pozisyonel Liste (Positional List) soyut veri tipi (ADT), öğelerin pozisyonlarını veya yerlerini temsil etmeyi kolaylaştıran bir veri yapısıdır. Bu yapı, öğeleri hatırlayarak, onları düzenli bir şekilde eklemeye, çıkarmaya ve güncellemeye olanak tanır.
Pozisyonel Liste ADT'si, genellikle ikili bağlı listeler gibi veri yapıları kullanılarak uygulanır ve aşağıdaki ana işlemleri içerir:
İlk Pozisyonu Bulma: Listenin ilk pozisyonunu verir.
Son Pozisyonu Bulma: Listenin son pozisyonunu
Bir deque (çift yönlü kuyruk), hem baştan hem de sondan öğe eklemeye ve çıkarmaya izin veren bir veri yapısıdır. İkili bağlı bir liste kullanarak deque oluşturmak, son derece uygun ve verimli bir yaklaşımdır.
İşte bir deque'nin ikili bağlı bir liste kullanarak nasıl uygulanacağına dair bir örnek:
1. Düğüm Sınıfı
Öncelikle, her düğümü temsil eden bir sınıf oluşturmalıyız. Her düğüm, bir değer ve iki bağlantı içerir: prev (önceki düğüme işaret eder) ve next (sonraki düğüme işaret ed
İkili bağlı listeler (Doubly Linked Lists) veri yapılarından biridir. Bu yapıda her düğüm kendisinden önceki ve sonraki düğümlerin referanslarını tutar. Bu, verilerin iki yönde de gezinilmesine olanak tanır. İkili bağlı bir listenin her bir düğümü genellikle bir veri kısmı ve iki referans kısmı içerir. Bu referanslar, düğümün kendisinden önceki ve sonraki düğümlere işaret eder.
İkili bağlı listenin bir şeması şu şekilde olabilir:
İkili bağlı listelerin bazı özellikleri şunlardır:
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ıl
Kuyruk (queue), ilk giren ilk çıkar (First-In-First-Out veya FIFO) prensibine göre çalışan bir veri yapısıdır. Bu, bir kuyruğa eklenen ilk öğenin, aynı zamanda kuyruktan çıkarılan ilk öğe olacağı anlamına gelir.
Tek yönlü bağlı bir liste kullanarak bir kuyruk uygulamak da mümkündür. Baş düğüm, kuyruğun önünü temsil eder, ve son düğüm, kuyruğun sonunu temsil eder.
Kuyruk İmplementasyonu
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
Yığıt (stack), son giren ilk çıkar (Last-In-First-Out veya LIFO) prensibine göre çalışan bir veri yapısıdır. Bir yığıt, iki ana işlemi destekler: push, bir öğeyi yığına ekler, ve pop, yığından bir öğeyi çıkarır.
Tek yönlü bağlı bir liste kullanarak bir yığıt uygulamak oldukça basittir. Baş düğüm, yığının en üstündeki öğeyi temsil eder, ve bu, push ve pop işlemlerinin hızlı bir şekilde gerçekleştirilmesini sağlar.
Yığıt İmplementasyonu
class Node:
def __init__(self, data=None):
Tek yönlü bağlı bir listenin başına bir öğe eklemek, genellikle oldukça hızlı ve basit bir işlemdir. Bu işlem, genellikle O(1) zaman karmaşıklığına sahiptir çünkü başa ekleme işlemi sabit sayıda adımda gerçekleştirilir.
Bağlı listenin başına bir öğe eklemek için aşağıdaki adımlar izlenir:
Yeni Düğüm Oluştur: İlk olarak, listenin başına eklemek istediğiniz değeri içeren yeni bir düğüm oluşturmalısınız.
Yeni Düğümün Referansını Ayarla: Yeni düğümün next referansını, şu anki baş düğü
Tek yönlü bağlı listeler (singly linked lists) hakkında daha ayrıntılı bir açıklama yapacağım.
Tek yönlü bağlı liste, düğümlerin birbirine yalnızca bir yönde bağlandığı bir veri yapısıdır. Her düğüm, bir veri öğesi ve sonraki düğüme işaret eden bir referans içerir. Son düğüm, genellikle NULL referansına sahip olur, bu liste sonunun işaretçisidir.
Tek Yönlü Bağlı Liste Yapısı:
Düğüm (Node): Veri ve sonraki düğüme işaret eden bir referans içerir.
Baş Düğüm (Head): Listenin ilk
Bağlı listeler, düğümlerden (nodes) oluşan bir veri yapısıdır. Her düğüm, bir veri alanı ve bir sonraki düğümün referansını içerir. İlk düğüme başlangıç düğümü denir, son düğüm ise genellikle NULL referansına sahip olur.
İşte bağlı listelerin temel özellikleri ve bileşenleri:
Düğüm (Node): Bir düğüm, genellikle iki bileşen içerir: bir veri kısmı ve bir sonraki düğümün referansı.
Baş Düğüm (Head): Listenin ilk düğümüne baş düğüm denir. Baş düğümü bilindiği sürece, listedeki diğer d