13.07.2015 Views

07 31 Ocak - 2 Şubat 2007 Kütahya - Akademik Bilişim Konferansları

07 31 Ocak - 2 Şubat 2007 Kütahya - Akademik Bilişim Konferansları

07 31 Ocak - 2 Şubat 2007 Kütahya - Akademik Bilişim Konferansları

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Veri Yapıları Dersinin Listeler Konusu için Simülasyonlu Bir Eğitim Materyali YazılımıTuncay Aydoğan, Kasım Delikanlısahip hücrelerden oluştuğu, programda tanımlanandeğişkenlerin ve onların değerlerinin hafızadanasıl temsil edildiğini anlatılır. Bu bilgilerdiğer veri yapıları için Şekil 1.b, ve Şekil 2.‘deki gibi modeller üzerinde anlatılır.Birleşik veri yapılarından listeler konusu isenode, liste kavramlarının tanımlanma, kodlanmabiçimleri Şekil 2.a.’daki gibi hafıza modellerinebenzer modeller üzerinde anlatılmayaçalışılır. Bir derece daha somutlaştırılarak anlatmakiçin Şekil_2.b.’deki gibi daha şekilselbir model kullanılır.Bu çalışmada, veri yapıları temel kavramlarınınöğrenebilmesi, Listeler konusunun daha iyi veçabuk anlaşılabilmesi için işlev ve yapıları özelolarak tasarlanarak hazırlanmış 13 adet fonksiyonkullanılarak, bir simülasyon programı hazırlanmıştır.Bu programda simülasyonu yapılanfonksiyonlar ve görevleri Tablo 1.’de verilmiştir.Bir Bağlı Doğrusal Listeler için gerçekleştirilenprogram çalıştırıldığında ilk önce Şekil 3.’degörülen “Liste Oluşturma Ekranı” gelmektedir.Bu ekranda, kullanıcı önce oluşturmak istediğilistenin node sayısını belirler, hafızanın duru-List Değişkeni Adresi Hafıza Modeline Node’lar List Veriyapısının Structure Yapısı List Veriyapısınınİle TanımlanmasıŞekilsel Modeliliststruct node0x22FF400x22FF4A0x22FF4B0x22FF4C0x22FF4D0x22FF4E0x22FF4F0x22FF500x22FF510x22FF520x22FF530x22FF530x22FF53( a )480x22FF4D240x22FF5232NULLdatalinkdatalinkdatalinklistliststruct node {int data;node* link;};node* list=NULL;list//liste( b )datadatanodelinklink●/Şekil 2.a.b. C Programlama Diline Liste Veri Yapıları Modellerinin GösterimiTanımlama ve fonksiyonlarstruct node { int data;node* link; };node* list=NULL;node* l1=NULL;node* l2=NULL;void dumplist(node* list)node* newnode()node* last(node* list)void addhead(node* node_, node*& list)void concatenate(node*& l1, node* l2)node* cons(int data_)node* copy(node* list)node* locate(int data_, node* list)bool member(node* node_, node* list)node* cuthead(node*& list)void free(node*& list)bool advance(node*& point)bool deletenode(node* node_, node*& list)Anlamlarıprogramda kullanılacak node yapısının ve kullanılacak listelerintanımlanmasılist listesini ekrana listelehafızadan yeni bir node allist listesinin son nodunu bullist listesinin başına node_ nodunu eklel1 listesinin sonuna l2 listesini ekleyeni bir node’un data’sına data_ değerlerini atalist listesinin kopyasını oluşturlist listesinde data’sı data_ olan node varsa adresini allist listesinde node_ adresli node varmılist listesinin ilk nodunu keslist listesini iptal et/siladresi point olan node’dan sonra bir node varsa poin’i ilerletlist listesinde node_ adresli node varsa bul ve silTablo 1. Programda Simülasyonu Yapılan Fonksiyonlar ve Görevleri474

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!