Meraklı Rakun: Codding

Merhaba!

Meraklı Rakun yayın hayatına başladı. Merak ettiğimiz şeyleri sizlerle paylaşmaya başlıyoruz, paylaştıkça büyümeyi umuyoruz.

Evdeki Spor Salonu

Sağlıklı yaşamak için spor salonlarına gitmenize gerek yok!

Türkiyede Magic the Gathering

İnceleme ve Sorunlar bu başlıkta.

Kickstarter

Projeniz için desteğemi ihtiyacınız var?

Sağlıklı Ses için Vokal İpuçları

Sesinize olan sevginizi nasıl gösterebilirsiniz?

Codding etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Codding etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

12 Eylül 2013 Perşembe

Tree




Veri düzenleme yöntemlerinden birisi olan tree mantığını kafamızda bir ağacın dalları olarak canlandırabiliriz. Koymak istediğimiz veriler kendi belirlediğimzi sıralama ölçütüne göre dallara eklenerek tree yi oluştururlar.

Tree yapısı için root ve branch dediğimiz terimlerden bahsedebiliriz.

Root- en tepedeki kök diye adlandırılan node'dur.

Branch- root un çocukları veya altına yerleşen node lar diyebiliriz.

Node bilgilerin içinde bulunduğu bölümler.


Root node ve diğer node lar arasında parent ve child ilişkisi vardır. Bu ilişki için yukarıda kalan node lar parent aşağıda kalan nodelar ise bu ailenin çocukları olarak değerlendirilirler.


Paylaştığım video treelerin bir çeşidi olan binary tree yi ayrıntılı ve anlaşılır bir şekilde anlatmış.

Tree'nin içine eleman eklemek konusunda yazdığım basit bi kod parçasını paylaşmak istedim. Koda baktığınız zaman daha kolay anlıyabilirsiniz.


MYBTREE insert(MYBTREE q,MYDATA  a) {

    if(q==NULL)
    {
        q=init_btree(a);
        q->data=a;
        q->left=NULL;
        q->right=NULL;
    }
    else if(a< q->data)
    {
        q->left=insert(q->left,a);
    }
    else if(a> q->data)
    {
        q->right=insert(q->right,a);
    }
    else
    {
        return 0;
    }
    return q;
}

9 Eylül 2013 Pazartesi

Stack



Stack, veri düzenleme yollarından bir tanesidir. Girilen veriler üst üste konularak bir yığın oluşturması sağlanır. Hızlı veri girişi yapılabilmesi açısından avantajlıdır ama düzensiz olduğu için ve içinden bir veri çekmek istediğimizde bütün verileri tekrardan düzenlememiz gerektiği için biraz yavaş kalır.

Stack için ilk giren son çıkar mantığı vardır. Mantıksal olarak düşünecek olursak bir yığının en altından herhangi bir şey almaya kalktığımızda yığın bozulacaktır.

Stack için kullanılan  fonksiyonlara bakacak olursak.

push- stack'in içine eleman koymak için,

pop- stack'in içinden eleman almak için  kullanılırlar.




Stack hakkında yapılmış güzel ve anlaşılır bir video paylaşmak istedim.

Push hakkında kendi yazdığım fonksiyonu paylaşıyorum;

void push(MYSTACK s, MYDATA a){
    a->next = s->last;
    s->last = a;
}


Pop hakkında kendi yazdığım fonksiyonu paylaşıyorum;

MYDATA pop(MYSTACK s){
    MYDATA a = s->last;
    if(a != NULL){
        s->last = a->next;
    }
    return a;
}


Önceki yazılarımda belirttiğim benim gibi yeni başlayan birisiyseniz push ve pop mantığı hakkında biraz düşündükten sonra kendiniz yazmaya çalışırsanız gelişmenize çok yardımcı olur.


Pointer Kavramı







Pointer, programımızda tanımladığımız değerlerin bellek üzerindeki yansımaları olarak değerlendirilebilir.



Animasyonlu bir video ile pointer kavramını kafamızda oturtmak çok daha kolay olabilir.


Pointer kavramı çok geniştir ve pointer kulanılarak yazılmış programları debug etmek dikkat gerektirir.  "***data" şeklinde bir kod görseniz bile unutmamanız gereken pointer her zaman pointerdır.

Bu konuda yazılabilecek en temel örnek sanırım swap kodudur.



void swap(int *a, int *b)
{
  int temp=*a;
  *a=*b;
  *b=temp;
}