Pascal – Veri Yapıları

– Listeler

Bir veri yapısı olan listeler aynı tür veri tiplerinin ard arda sıralanması ile oluşan bir yapıdır. Örneğin bir kütüphanede yazarların isimlerinin ard arda yazılması ile yazarlar listesi, kitap isimlerinin ard arda yazılması ile kitapların listesini elde ederiz. Bunun gibi listeleri günlük hayatımızda çokca kullanırız. Listenin uzunluğu listede bulunan elemanların sayısına eşittir. Birinci eleman listenin başını, sonuncu eleman ise listenin sonunu temsil eder. Eğer listenin bütün elemanları boş ise liste boştur. Eğer liste boyu kadar eleman listede varsa o zaman da liste doludur, deriz. Bu mantıklardan hareketle listeye yeni eleman ekleyerek ve listeden eleman çıkararak listenin hareketliliği sağlanmış olur.

Listenin elemanları daha önce tanımlanan veri tiplerinden herhangi biri olabilir. Yani liste sayısal verilerden olabileceği gibi alfasayısal verilerden oluşan bir liste de olabilir. Listeyi oluşturan veri tiplerini programı kullanım amacımıza göre seçebiliriz.

Listelerde veriler karışık olarak yerleştirilebileceği gibi bir sıraya bağlı olarak ta yerleştirilebilir. Ancak listelerdeki verilerin karışık olması, istendiği zaman istenilen verinin bulunabilmesini zorlaştırır.

1. Yapı olarak bağlaçsız liste yapısı sequential (sıralı) kütük yapısına benzer. Sequential kütüğe veri ekleme ve silme işlemlerinde kullanılan mantık bu yapıda da uygulanabilir.Verilerin düzenli olarak yerleştirilmesi ise bu tür arama işlemlerini kolaylaştırmasına rağmen bu sefer de ortaya düzenli (sıralı) olarak yerleştirme problemi çıkar.

2. Bu tür dezavantajları ortadan kaldırmak için bağlı liste yapıları kullanılır. Mantık olarak kolay bir yapı olduğu için çok kullanışlıdır.


– Yığın (Stack) Yapısı

YIĞIN ( STACK )

Stackler günlük hayatta sıkca yaptığımız bir şeyleri  diğerlerinin üzerine koyma daha sonrada bunları üstten sıra ile alma mantığının bilgisayar alanaındaki uygulama biçimidir. Masamızın üzerıinde üst üste dizilmiş kitapları, tezgatarın önünde üst üste konmuş kazakları, mutfaklarımızda yıkanmak için sıralarını bekleye tabakları günlük hayatta sıkca görmüşüzdür.

Şimdi kendimiz basit bir stack oluşturalım. Bunun için önce elimize bir kitap alıp bunu masamızın üzerine yerleştirelim. Sonra bir defteri az önce masamızın üzerine yerleştirdiğimiz kitabın hemen üzerine koyalım ve bu defterin üzerine de bir kalem yerleştirelim. Böylece kitap defter ve kalemden oluşan üç (3) elemanlı bir stack oluşturmuş olduk. Şimdi bu stack’ten bizim kitabı almamız istendiğinde yapmamız gereken şey doğal olarak önce en üstteki kalemi  daha sonra onun altında bulunan defteri en son olarakta en alttaki kitabı almamızdır. Dikkat edilecek olursa stack’e en son yerleştirdiğimiz kalemi en başta aldık yani stack’e en son yerleştirilen (giren) kalem stack’ten en önce ayrıldı (çıktı) .Bu ilk giren ilk çıkar LİFO (Last İn First out ) prensibi stack’in temel mantığıdır.Veya bir başka anlatımla stack’e ilk giren kitap stackten en son çıkmıştır FILO (First İn Last Out) ilk giren son çıkar.

Bilgisayarlarda stack’ler özellikle alt progmanların çağrılması sırasında, öz yinelemeli programlarda ve matematiksel işlemlerde çok sık kullanılır. Örnegin her hangi bir programın içerisinden bir alt programı çağırdığımız zaman programın neresinde kaldığımızı bilmemiz için ; bulunduğumuz programdan ayrılıp alt programa gittiğimiz yerin adresini bilgisayar bir stack’te saklayarak alt programın yürütmesi bitip geriye dönmek istendiği zaman bilgsayar stack’te saklanan bu adresten yaralanarak kaldığımız yere geri dönmemizi sağlar.

– Queue (Kuyruk) Yapısı

QUEUE (KUYRUK)

Veri  yapılarındaki pek çok mantık aslında insan oğlunun günlük hayatta kullandığı olaylardan esinlenerek üretilmiştir. Bu veri yapılarından biri olan kuyruklarda günlük hayatımızda sıksık yaşadığımız kuyruk mantığından farksızdır. Örneğin bir otobüs durağında; gelecek olan otobüse binmek için kuyrukta bekleyen insanların durumu yine aynı şekilde ekmek almak için ekmek büfesinin önünde bekleyen insanların durumunu incelersek veri yapılarındaki kuyruk kavramını anlamamız çok kolay olacaktır.

Bir ekmek büfesinin önünde ekmek almak için sırada bekleyen insanları inceleyecek olursak; ekmek sırasına ilk önce gelen yani kuyruğa ilk girenin ekmek geldiği zaman ilk önce ekmeği alması gerekir daha sonra ekmeğini alacak olan ikinci sıradaki kişidir. Bu böylece kuyruğun sonuna doğru herkes ekmeğini alıncaya kadar sürer, kuyruğa en son giren kişi haliyle en son ekmeğini alır. Buradan çıkarılacak sonuç ilk giren ilk çıkar ( First İn First Out ) FİFO veya bir başka anlatımla son giren son çıkar ( Last İn Last Out ) LİLO dir . Bu mantık kuyruğun temel mantığıdır . Görüldüğü gibi kuyruğun temel mantığı daha once anlatılan stacklerin(yığınların) temel mantığının tam tersidir.

Bilgisayarlarda kuyruklar özellikle sıra beklemeli sistemlere, network yapılarında, bir yazıcının (printer) birden çok  bilgisayar tarafından kullanılması durumunda ve aritmetiksel işlemlerde kullanılır .

Bir Yorum
  1. 14 Mart 2009

Yorum Bırak

E-posta hesabınız yayımlanmayacak.