Massivlər və Əlaqəli Siyahılar
Masivlər elementlərin kolleksiyasını saxlamaq üçün ən çox istifadə edilən məlumat strukturudur. Əksər proqramlaşdırma dilləri massivləri asanlıqla elan etmək və massivlərdəki elementlərə daxil olmaq üçün üsullar təqdim edir. Əlaqəli siyahı, daha dəqiq desək, tək-bağlı siyahı, həm də elementlərin kolleksiyasını saxlamaq üçün istifadə edilə bilən məlumat strukturudur. O, qovşaqlar ardıcıllığından ibarətdir və hər bir qovşaq ardıcıllıqdakı növbəti noda istinada malikdir.
Şəkil 1-də göstərilmişdir, adətən massivə dəyərləri elan etmək və təyin etmək üçün istifadə olunan kod parçasıdır. Şəkil 2 massivin yaddaşda necə görünəcəyini təsvir edir.
Yuxarıdakı kod 5 tam ədəd saxlaya bilən massivi müəyyən edir və onlara 0-dan 4-ə qədər indekslərdən istifadə etməklə daxil olur. Massivin mühüm xüsusiyyəti odur ki, bütün massiv bir yaddaş bloku kimi ayrılır və hər bir element öz sahəsinə sahib olur. massivdə. Massiv müəyyən edildikdən sonra onun ölçüsü müəyyən edilir. Beləliklə, kompilyasiya zamanı massivin ölçüsünə əmin deyilsinizsə, təhlükəsiz tərəfdə olmaq üçün kifayət qədər böyük bir massiv təyin etməli olacaqsınız. Ancaq çox vaxt biz ayırdığımızdan daha az sayda elementdən istifadə edəcəyik. Beləliklə, əhəmiyyətli miqdarda yaddaş əslində boşa çıxır. Digər tərəfdən, əgər “kifayət qədər böyük massiv” əslində kifayət qədər böyük deyilsə, proqram çökəcək.
Əlaqələndirilmiş siyahı yaddaşı öz yaddaş blokunda elementlərinə ayrıca ayırır və ümumi struktur bu elementləri zəncirdə halqa kimi birləşdirməklə əldə edilir. Əlaqədar siyahının hər bir elementi Şəkil 3-də göstərildiyi kimi iki sahəyə malikdir. Məlumat sahəsində saxlanılan faktiki verilənlər, növbəti sahədə isə zəncirdəki növbəti elementə istinad var. Əlaqədar siyahının ilk elementi əlaqəli siyahının baş hissəsi kimi saxlanılır.
data | növbəti |
Şəkil 3: Əlaqədar Siyahının Elementi
Şəkil 4 üç elementdən ibarət əlaqəli siyahını təsvir edir. Hər bir element öz məlumatını saxlayır və sonuncudan başqa bütün elementlər növbəti elementə istinadı saxlayır. Son element növbəti sahəsində null dəyəri saxlayır. Siyahıdakı istənilən elementə başdan başlayaraq tələb olunan elementə cavab verənə qədər növbəti göstəriciyə əməl etməklə daxil olmaq olar.
Massivlər və əlaqəli siyahılar hər ikisinin elementlər kolleksiyasını saxlamaq üçün istifadə olunması mənasında oxşar olsalar da, yaddaşı onun elementlərinə ayırmaq üçün istifadə etdikləri strategiyalara görə fərqliliklərə səbəb olurlar. Massivlər yaddaşı onun bütün elementlərinə vahid blok kimi ayırır və massivin ölçüsü icra zamanı müəyyən edilməlidir. Bu, kompilyasiya zamanı massivin ölçüsünü bilmədiyiniz hallarda massivləri səmərəsiz edər. Əlaqəli siyahı yaddaşı elementlərinə ayrıca ayırdığı üçün tərtib zamanı siyahının ölçüsünü bilmədiyiniz hallarda bu, çox səmərəli olardı. Bəyannamə və əlaqəli siyahıdakı elementlərə daxil olmaq, onun indekslərindən istifadə edərək massivdəki elementlərə birbaşa daxil olmanızla müqayisədə birbaşa olmayacaq.