İçeriği Paylaş:

Listeler

  1. Listeler

Konunun   daha   rahatanlaşılması  için   günlük   hayattan  bir örnek verilebilir.  Adlarının alfabetiksırasında  göre duran  ve  bir  elleri   ile birbirini işaret eden askerler düşünelim.Ekran Alıntısı Bu askerlerin adları, görevleri ve yaşlarını bir yapı(struct) dizi içerisinde saklayabiliriz.Ancak asker sayımız dinam k   olarak   değişkenlik göstereceğinden  sabit bir   dizi  tanımlamamız uygun olmaz. Bunun yanısıra alfabetik sıraya göre dizildikler  için araya yeni asker  eklenmesi ya da birisinin eksilmesi ayrı bir problem olacaktır. Bunun  gibi  problemleri  aşmak  için  liste  kavramı  ortaya  çıkmıştır. Bu yeni yaklaşıma göre bir yapı   tanımlanır ve  yapının  içerisinde en az bir tane kendi tipinde bir yapının adresini saklayabilen bir işaretçi olmalıdır.  Örneğimizde askerlerin  kolları  işaretçi alanını isimleri,  görevleri  ve yaşları ise veri alanını göstermektedir.Dizili askerlere  ait  bilgiler her sorgulandığında önce  listenin başındaki askere gidilir, ona  ait bilgiler alındıktan  sonra  kolunun  işaret ettiği askere geçilir. Bu işlem hiçbir asker işaret etmeyen asker   bulununcaya kadar devam eder.  Eğer yeni bir asker gelirse uygun  araya sıkıştırılır, birisi giderse de  gidenin  gösterdiği  asker  gideni  gösteren   tarafından gösterilir.

1.1. Liste Çeşitleri 

Listeler işaret etme şekline ve sonlanma durumuna göre aşağıdaki gibi sınıflara ayrılabilir:

  • Tek bağlı sıralı doğrusal listeler
  • Çift bağlı sıralı doğrusal listeler
  • Tek bağlı sıralı doğrusal listeler
  • Çift bağlı sıralı doğrusal listeler

1.1. Tek Bağlı Sıralı Doğrusal Listeler

Bu veri yapısı iki ayrı alandan oluşur. Veri alanı ve bağ alanı. Bu yapıya listenin bir düğümü(node) adı verilir.Ekran AlıntısıVeri alanı: Bu alanda bilgiler saklanır.Bağ alanı: Bu alanda bir sonraki düğümün başlangıç adresi saklanır.Listede bulunan elemanlar fiziksel olarak sıralı olmak  durumunda değildir.  Verilecek  örnekteki  liste,  alfabetik  karakterleri  sıralı    olarak saklayan  bir  listedir.  Listede alfabetik olarak  en küçük olan elemanın adresi bilinir. Liste  başı  işaretlendikten  sonra büyüklük  sırasında  bir sonraki elemanların adresleri bağ alanlarına yazılarak liste sıralanır. En son elemanın bağ alanında sıfır bulunur, bu listenin bittiğini gösterir.Ekran Alıntısı

1.2.1.    Tek Bağlı Sıralı Doğrusal Listeleye Düğüm Ekleme

Sıralı bir listeye eleman eklemek için önce liste    tanımlanır. Bunun için  listede  tutulacak verinin türü  ve listenin eleman sayısı verilir. Önceki  örnekte verilen listeyi ele alarak bu listeye ‘G’ harfini    eklemek isteyelim.   Önce   listede   bu   veri için boş  bir alan   bulunur   ve  bağ alanlarında güncelleme yapılır. ‘G’ verisini 6.sıraya yazarsak ‘F’ n n bağı ‘G’ yi, ‘G’ nin bağı da ‘H’ yi gösterecek şekilde bağ alanları değiştirilir.Ekran Alıntısı

  

İçeriği Paylaş:
İlginizi Çekebilir
Yorum Yapılmamış

Henüz Hiç Yorum Yapılmadı..

Yorum Yaz

Listeler

Programlama 2

26/07/2016 | Yorum Yok | 29 | kucukakarsu