Soyut Veri Tipi (Abstract Data Type - ADT)
ADT, bir veri yapısının iç yapısını ve işlemlerini kapsayan bir soyutlama biçimidir. Soyut veri türleri, yani ADT'ler, bir veri modelinin davranışını tanımlar. Bu davranış, ADT'deki verilere uygulanabilecek belirli işlemlerle ifade edilir.
Örneğin, bir ADT olarak "liste"yi düşünelim. Bir liste, belirli bir türdeki elemanları saklar ve bu liste üzerinde belirli işlemler yapabiliriz - eleman eklemek, çıkarmak, belirli bir indexteki elemanı okumak vb. Fakat liste, verilerin tam olarak nasıl saklandığını veya işlemlerin tam olarak nasıl gerçekleştirildiğini belirtmez. Bu, liste veri yapısının somut bir uygulamasıdır ve bu ayrıntılar dil ve veri yapısının spesifik uygulamasına bağlıdır.
Bir ADT'nin dört ana bileşeni vardır:
1. Veri: ADT'nin ne tür veri sakladığı.
2. İşlemler: Bu veri üzerinde gerçekleştirilebilecek işlemler.
3. Kısıtlamalar: Bu veri ve işlemlerle ilgili kısıtlamalar veya kurallar.
4. İlişkiler: ADT'nin diğer veri türleriyle olan ilişkisi.
Bu bileşenlerin tümü, ADT'nin davranışını tanımlar ve bu davranış, genellikle bir dizi arayüz veya metot aracılığıyla diğer kod parçaları tarafından kullanılabilir. ADT'nin iç yapısı ve işlemlerin tam olarak nasıl gerçekleştirildiği, yani ADT'nin uygulaması, genellikle gizlidir ve bu da ADT'lerin ana gücünü oluşturur: bilgi saklama ve soyutlama yeteneği. Bu özellik, kodun daha modüler, anlaşılır ve esnek olmasını sağlar.
Python'da soyut veri tipi (ADT) kavramı, sınıflar ve metotlar aracılığıyla gerçekleştirilir. Bir sınıf, veri ve işlemleri (metotları) bir arada tutan bir yapıdır. Aşağıda basit bir ADT örneği bulunmaktadır:
class Stack: def __init__(self): self.stack = [] def push(self, item): self.stack.append(item) def pop(self): if len(self.stack) < 1: return None return self.stack.pop() def size(self): return len(self.stack)
Bu örnekte Stack isimli bir ADT oluşturduk. Bu ADT, push, pop ve size gibi metotlar ile veriye işlem yapabilmemizi sağlar. Ancak, stack verisinin tam olarak nasıl depolandığı ve işlemlerin nasıl yapıldığı hakkında bilgi sahibi olmamız gerekmez.
ADT'nin iç yapısı ve işlemlerin nasıl gerçekleştirildiği bilgisi (stack listesi ve Python listelerinin append ve pop metotları), Stack sınıfının dışından gizlidir. Bu bilgi saklama veya "kapsülleme" kavramı, ADT'nin gücünü oluşturur ve kodun daha anlaşılır ve yönetilebilir olmasını sağlar.
Python'da bu türden bir soyutlama, sınıf ve metot kullanımı ile sağlanır. İç yapının ve işlemlerin detayları, sınıfın kullanıldığı diğer kod parçalarından gizli kalır. Bu, bir ADT'nin temel özelliğidir.
0 Comments
Recommended Comments
There are no comments to display.