Yazan : Şadi Evren ŞEKER

Veri yapıları (data structures) üzerinde uygulanan döngü (loop) tiplerinden birisidir, literatürde haritalama tipi olarak da geçmektedir. Temel olarak bir veri tipi üzerindeki değişimi uygulamak için kullanılırlar. Örneğin aşağıdaki bağlı listeyi (linked list) ele alalım:

Yukarıdaki bu bağlı listedeki elemanların üzerine, sayı değerini 1 arttıran bir fonksiyon bindirildiğinde (map) aşağıdaki sonuç elde edilir:

Yani her eleman teker teker bu fonksiyona tabi tutulur ve sonuçta elde edilen listede yapısal bir değişim olmaz, sadece sayı değerleri değişir.

C dilinde bir map fonksiyonunun yazılması için fonksiyon göstericilerine (function pointers) ihtiyaç duyulur.

void map( node *root,  int (*pt2Func)(int))
{
   node * iter = root;
   while(iter!=NULL){
	printf("value:%d",iter->value);
	iter->value=(*pt2Func)(iter->value);
	iter=iter->next;
  }
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir