• Bağış
  • Biriktirme Tipi Fonksiyonlar ( Accumulator Type Functions)

    Yazan : Şadi Evren ŞEKER

    Bir veri yapısı üzerinde çalışan ve veri yapısında bulunan verileri, verilen bir fonksiyonu kullanarak bir değişkende biriktiren fonksiyon tipidir. Bu durum aşağıdaki bağlı liste (linked list) örneğinden anlaşılabilir:

    Örneğin yukarıdaki listede toplama fonksiyonu olarak aşağıdaki fonksiyonu uygulayacak olursak:

    int topla(int a, int b){

    return a + b;

    }

    sırasıyla yapılması gereken işlemler aşağıdaki şekildedir:

    10 + 7 = 17

    17 + 13 = 30

    30 + 6 = 36

    ve biriktirme tipi olan toplama fonksiyonundan dönen değer olarak sonuçta 36 çıkması beklenir.

    Çoğu uygulamada biriktirme fonksiyonunun etkisiz elemanının, parametre olarak alınması da söz konusudur. Bu durumda listedeki işleme bu değer ile başlanabilir. C dilinde bu işi yapan genel bir fonksiyon yazmak mümkündür ve bu iş için fonksiyon göstericilerinden (function pointers) faydalanılmalıdır:

    int accumulate (node *root,int nulvalue,int(*pt2Func)(int,int))
    {
    	int acc=(*pt2Func)(nulvalue,root->value);
    	node * iter= root;
    	while(iter!=NULL){
    		iter=iter->next;
    		acc=(*pt2Func)(acc,iter->value);
    	}
    	return acc;
    }

    Benzer Yazılar:

    Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Biriktirme Tipi Fonksiyonlar ( Accumulator Type Functions)' isimli yazı 30 Mar 2009 tarihinde, saat: 11:22 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 715 defa okunmuştur.

    Benzer yazıları C/C++, Derleyiciler, Programlama Dilleri, 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.


    Category: C/C++, Derleyiciler, Programlama Dilleri, veri yapıları

    Leave a Reply