Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanEsin Levni Değiştirilmiş 9 yıl önce
12
pointerverisonraki 0Tülay 1Vedat6 LB3=22Pelin15 3Burak9 4Kadir 5Seyhan13 6Utku16 LB1=77Ayşe3 8 9Ceyda11 10 11Dilek 12 13Şükrü4 LB2=1414Zeynep17 15Ramazan5 16Ümmihan0 17Yasin1 18 19 Aşağıdaki şekli inceleyerek bir bağlı listenin dizi üzerinde nasıl saklanabileceğini ortaya koyalım Birinci liste LB1=7 olduğundan 7 adresli düğümde başlamaktadır. Bu birinci listenin elemanları {Ayşe, Burak, Ceyda, Dilek} kümesinden oluşmaktadır. İkinci liste LB2=14 olduğundan 14 adresli düğümden başlar ve {Zeynep, Yasin, Vedat, Utku, Ümmihan, Tülay} kümesini tarar.
13
Şimdi LB1 ile gösterilen listenin başına Hasan isimli kişiyi ekleyelim. Boş bir düğüm almalıyız. Örneğin 8 adresli düğüm alınsın. 8 adresli düğümün veri alanına “Hasan” yazılmalı. 8 adresli düğümün sonraki kısmı LB1’i göstermeli, yani sonraki(8)=7 olmalı. LB1 artık bu yeni elemanı adreslemeli, yani LB1=8 olmalı. Listenin son durumu aşağıdaki gibi olur. pointerverisonraki 0Tülay 1Vedat6 LB3=22Pelin15 3Burak9 4Kadir 5Seyhan13 6Utku16 7Ayşe3 LB1=88Hasan7 9Ceyda11 10 11Dilek 12 13Şükrü4 LB2=1414Zeynep17 15Ramazan5 16Ümmihan0 17Yasin1 18 19
14
Şimdi ise LB2 ile adreslenen bağlı listeden {Zeynep, Yasin, Vedat, Utku, Ümmihan, Tülay} Utku isimli kişiyi çıkaralım. Öncelikle LB2=14 adresinden taramaya başlayarak Utku verisi hangi düğümün veri alanında olduğunu buluruz. Bu ise, veri(sonraki(LB2)) taramasıyla yapılabilir. veri(sonraki(LB2))=veri(17)=Yasin devam edelim; veri(sonraki(17))=veri(1)=Vedat devam edelim; veri(sonraki(1))=veri(6)=Utku silinmek üzere aranan eleman bulundu. 1 adresli düğümden sonraki düğüm çıkarılacak. 1 adresli düğüm 6 adresini değil, 6 adresinin sonrakini gösterecek. Sonraki(1)=sonraki(6)=16 pointerverisonraki 0Tülay 1Vedat16 LB3=22Pelin15 3Burak9 4Kadir 5Seyhan13 6Utku16 7Ayşe3 LB1=88Hasan7 9Ceyda11 10 11Dilek 12 13Şükrü4 LB2=1414Zeynep17 15Ramazan5 16Ümmihan0 17Yasin1 18 19 pointerverisonraki 0Tülay 1Vedat6 LB3=22Pelin15 3Burak9 4Kadir 5Seyhan13 6Utku16 7Ayşe3 LB1=88Hasan7 9Ceyda11 10 11Dilek 12 13Şükrü4 LB2=1414Zeynep17 15Ramazan5 16Ümmihan0 17Yasin1 18 19
15
Örnek:10 yataklı bir hastane binasında boş ve dolu yatakların izlenmesi için bağlı listeden yararlanılacaktır. Hastaneye yeni yatış yapanlar ve taburcu olanlar için gerekli güncellemeler bu bağlı liste üzerinden gerçeklenecektir. Bunun için yatış yapanların izlenmesi (dolu yataklar) için bir bağlı liste, boş yatakların izlenmesi için ayrı bir bağlı liste aynı dizi üzerinde aşağıdaki şekilde görüldüğü gibi düzenlenebilir. Mevcut durumda yataklardan 8 tanesi dolu 2 tanesi boş olsun. Bu örnekte işaretçiler yatak numaralarına işaret edeceklerdir. Dolu yataklar listesinin liste başı için bir işaretçi, boş yataklar liste başı için ayrı bir işaretçi kullanılacaktır. Dizimiz şu şekilde düzenlenecektir.
16
Yatak no Hasta Adıİşaretçi 1Dilek8 2Leyla9 3---------- 4Vildan 5Gül10 LB1=66Banu1 LB2=77----------3 8Elif5 9Selin4 10Jale2 Şimdi bu yapıda Gül isimli hastanın taburcu olduğunu varsayıp güncellemeleri yapalım. Yatak noHasta Adıİşaretçi 1Dilek8 2Leyla9 3---------- 4Vildan LB2=55----------7 LB1=66Banu1 7----------3 8Elif10 9Selin4 10Jale2
17
Şimdi de Reyhan isimli bir hastanın hastaneye yatış yaptığını düşünelim. Bu arada listemiz takip edildiğinde listemizin alfabetik sırada olduğunu fark ettik. Bu durumda Reyhan isimli hastayı eklerken sıralamanın bozulmaması önemli olacaktır. Bunun için boşlar listesinden boş bir yatak isteriz. LB2=5 olduğundan bize 5 adresli düğüm verilecektir. LB2 değeri de yeniden 7 olacaktır. (LB2=7) Yatak5Reyhan Yatak noHasta Adıİşaretçi 1Dilek8 2Leyla5 3---------- 4Vildan 5Reyhan9 LB1=66Banu1 LB2=77----------3 8Elif10 9Selin4 10Jale2 Listenin ortasını eleman ekleme algoritmasını (yerleştir(LB, x))kullanarak elemanı ekleyeceğimiz yeri buluruz. Burada 2 adresli düğümden sonra ekleyeceğimiz anlaşılır.
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.