Linked List (Bağlı Liste)

Pubtekno
31-05-2016, 19:52   |  #1  
Pubtekno avatarı
OP Taze Üye
Teşekkür Sayısı: 0
4 mesaj
Kayıt Tarihi:Kayıt: May 2016

                                                           Linked List (Bağlı Liste)


          Linked List (Bağlı Liste) Nedir? Linked List Ne İşe Yarar? Linked List Algoritması ve Akış Diyagramı Nasıl Olur? Bağlı liste örnekleri.

              Algoritma dersleri serimizin bu dersinde linked list yapısından bahsedeceğiz. Linked list, Türkçesiyle bağlı liste bize bellekte istediğimiz gibi hareket etmemize olanak sağlayan bir tür veri saklama çeşididir. Bağlı listelerle oluşturacağımız listelerde ulaşmak istediğimiz elemanı ve bu elemandan bir sonraki elemanın bellekteki yerini saklarız. Böylece dizilerde veya matrislerdeki gibi elemanlar bellekte ard arda gelmek zorunda olmayacaklar.


          Bağlı listeyi 2 satır ve n sütunlu bir matris olarak düşünün. Her sütunun ilk elemanı saklamak istenilen değeri 2. satırdaki elemanı ise bu elemandan sonra gelecek olan elemanın hangi satırda olduğunu göstersin.


         Yukarıdaki şekilde ilk eleman bağlı listeye nereden başlanılacağını söyler. Bu yüzden değer kısmı boştur. 2. kısımda ise nereden başlayacağı yazılıdır. Elimizde 2 dizi olduğunu varsayalım. Birinci dizi değerleri, ikinci dizi ise bu değerlerin sırasını saklasın. Şöyle ki, bu dizilerin isimleri değer ve adres olsun.


          Adres dizisinin ilk elemanı bağlı listenin ilk elemanının yerini söyler. Diyelim ki yukarıdaki resimdeki gibi 5 olsun. Bağlı listenin ilk elemanı değer[5] olur. Daha sonra adres[5] dizisinin değeri bize bağlı listenin 2. elemanını verir. Yukarıdaki şekilde bu değeri 9 olarak görüyoruz. Buradan değer[9] dizisi bağlı listenin 2. elemanı olur. Adres[9] dizisinin 3. elemanının -1 olması demek ise artık bağlı listenin sonuna geldiğimizi anlatır.

         Bu şekilde 2 elemanlı bir bağlı listeyi 3 adres elemanıyla birbirlerine bağladık. Burada dizi kullanmak yerine adresleri direk değerlerin bellekteki yerleri olarakta alabiliriz. Zaten bağlı listenin bellek yapısına dinamiklik kazandıran özelliğide budur. Hemen diziler üzerinden bir örnek verelim.


Örnek:


Dizi isimli değer dizimizin elemanları :                     -   20  30  40  50

Adres isimli adres saklayan dizimizin elemanları :    3    4   -1    1    2


Adres dizimizin ilk elemanı bize bağlı listenin ilk elemanının yerini gösterdi.  Dizi[3]=40

Daha sonra adres[3] elemanına gittik ve bağlı listenin 2. elemanına ulaştık.  Dizi[1]=20

Adres[4] elemanına gittik ve bağlı listenin 3. elemanına ulaştık.  Dizi[4]=50 

Adres[3] elemanına gittik ve bağlı listenin 4. ve son elemanına ulaştık. Dizi[2]=30


Böylece bağlı dizimiz : 40 20 50 30 olmuş oldu .


Diziler kullanılarak oluşturulmuş bir bağlı listeyi ekrana yazdıran programın akış diyagramını sizler için hazırladık.


Linked List (Bağlı Liste) Akış Diyagramı


Değer ve adres dizisini kullanıcıdan aldıktan sonra while komutuyla adres dizisi -1 olana kadar değer dizisini ekrana yazdırdık.

"Linked List (Bağlı Liste)" adlı bu makaleyi beğendiyseniz lütfen yorum yapmayı ve paylaşmayı unutmayın. 

Kaynak:Pubtekno