Abstract Data Type (ADT – Soyut Veri Tipleri)


ADT, bilgisayar bilimlerinde bir grup veriyi ve bu veri üzerinde yapılabilecek işlemleri düzenleyen yapının adıdır. Soyutluk kelimes, veri yapısının bir tasarım olması ve kullanıcı için, yapının içinin tamamen soyut olması, kullanan kişilerin bu veri tipinin uygulama detayları ile ilgili bilgisinin olmasını gerektirmemesidir.
Örnek soyut veri tipleri olarak bağlı liste , yığın (stack) , sıra ( queue) , kompleks sayılar , kümeler sayılabilir.

Veri tipinin soyut olması aşağıdaki C/C++ dilindeki stack (yığın) örneği ile açıklanabilir:
Örneğin dilimizdeki tanımlı fonksiyonlar aşağıdaki şekilde olsun. (bu fonksiyonlar aynı zamanda arayüz (interface) fonksiyonlarıdır)
long stack_create(); /* yeni bir stack yap */
void stack_push(long stack, void *item); /* stack'e yeni bir eleman (item) koy */
void *stack_pop(long stack); /* stack'in tepesindne bir eleman al */
void stack_delete(long stack); /* stack'i sil */

Bu fonksiyonlar kullanılarak, iç yapılarından tamamen habersiz bir programcı aşağıdaki şekilde program yazıp bu veri tipini kullanabilir:

long stack;
struct foo *f;
stack = stack_create(); /* yeni bir stack yap */
stack_push(stack, f); /* foo'yapısını stack'e ekle */
f = stack_pop(stack); /* stackin en üstündeki elemanı al */

ADT’nin (abstract data types) daha verimli olabilmesi için özellikle nesne yönelimli programlama dillerinde, her tip nesneyi alabilecek yapıda olması önerilir. Bu sayede çok şekilcilik (polymorphism) sağlanmış olur ve stack içine istenilen tipten veri konulabilir. Diğer bir yöntem ise stack tanımında template kullanmaktır. Bu sayede bütün stack elemanları tek bir tip olacak ancak tip tanımı stack oluşturulurken verilmiş olacaktır.

ADT yapısına uygun olarak kodlanan ve dizi kullanan bir stack uygulaması: stack_arr.rar


« Linked List (Linkli Liste veya Bağlı Liste)   |   Array (Dizi) »



Yorumlar

Kullanıcı girişi yaparak ya da zorunlu olan * alanlarını doldurarak yorum yapabilirsiniz.

İsminiz *

Email adresiniz *

Web siteniz

Mesajınızı buraya yazabilirsiniz:

Toplam 2 yorum var.

  1. bilgisayar.kavramlari.com » Stack (Yığın) | 04 May 2007, 12:22

    [...] açık olan. İlk giren son çıkar LIFO (Last in First Out) mantığı ile çalışan bir ADT örneğidir. Temelde iki veya üç fonksiyonu bulunur bunlar: Push -> Stack içerisine bir bilgi [...]

  2. Ahmet | 22 Dec 2009, 21:12

    Hocam gerçekten mantığını çok güzel açıklamışsınnız. Yazılarınızın devamını dilerim.

Bu Yazı Hakkında

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Abstract Data Type (ADT – Soyut Veri Tipleri)' isimli yazı 04 May 2007 tarihinde, saat: 12:02 'de �adi Evren �EKER tarafından gönderilmiş, toplam 1549 defa okunmuştur.

Benzer yazıları Bilgisayar Kavramları, veri yapıları kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Yazarın Kitabı

Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
Yapılan Son Yorumlar
Yakın Yazılar
Bağlantılar