Verilənlərin strukturunun seçilməsi proqramların hazırlanmasının əhəmiyyətli mərhələlərindən biridir və proqramın effektivliyi ,onun yazılmasına tələb oiunan zəhmət və proqram tərəfindən həll edilən məsələlərin yerinə yetirilmə vaxtı bu seçimin düzgünlüyündən asılıdır. Bu həm də verilənləri emal edən alqoritmlər və onların strukturları üçün doğrudur. Müasir proqramlaşdırma dillərinin tərkibindəmövcud olan kitabxanaların və verilənlərin strukturları siniflərin,məsələn,müxtəlif növ siyahıların, müxtəlif növ ağacların , steklərin, deleqatların və s.meydana çıxması yüksək ixtisaslı mütəxəssislər tərəfindən verilənlərin bu strukturlarından istifadənin incəliklərini və onların emalı alqoritmlərini bilmək zərurətini aradan qaldırmır.
İstənilən proqram konkret qiymətlərlə və ya verilənlərlə işləyir. Onların üzərində müxtəlif hesablama əməliyyatları aparmaq olar,onları dəyişdirmək və ya silmək olar. Bir proqram çərçivəsində onlar iki cür təsvir oluna bilər:dəyişənlər və sabitlər . Dəyişənlər- proqram kodunun icra prosesində aldıqları qiymətlərini dəyişən kəmiyyətlərdir və onlar müxtəlif proqramlaşdırma dillərində müxtəlif qaydalarda elan edilir.Məsələn , Pascal ,C++ və C# dilində qabaqcadan dəyişənləri elan etmək lazım gəldiyi halda,Python dili onlarla lazım olan yerdə işləməyə imkan verir. Hər dilin verilənlərin öz strukturları mövcuddur. Dəyişənlərin, demək olar ki, bütün dillərdə mövcud olan bir neçə baza tipləri var: tam ədəd həqiqi (qeyd olunmuş və sürüşkən nöqtəli),sətir, simvol,məntiqi və sair
Sabitlər isə proqramın icrası prosesində dəyişikliklərə məruz qalmayan kəmiyyətlərdir,məsələn, “pi”ədədi
Seçilmiş tipə uyğun dəyişən operativ yaddaşda müəyyən xanada yerləşir.Verilənləri strukturlaşdırdıqda dəyişənləri tiplərə görə rasional bölmək lazımdır.
MÜHAZİRƏ 2 VERİLƏNLƏRİN STATİK VƏ DİNAMİK STRUKTURLARI
Verilənlərin strukturlarının təsnifatı Verilənlərin strukturlarını bir neçə müxtəlif əlamətlərə görə təsnif etmək olar. Təsnifatın ən sadə və aydın kriterisi verilənlərin strukturlarının mürəkkəblik səviyyəsidir. Mürəkkəblik, səviyyəsinə görə verilənlərin strukturu aşağıdakılara bölünür:
1. sadə strukturlar - proqramlaşdırma dillərinin tipləri üçün standart adi dəyişənlər və ya sabitlər, həmçinin bu tiplərin dinamik dəyişənləri;
2. eyni tipli verilənlər yığımı - birölçülü (və ya vektorlar), ikiölçülü (matrislər) və çoxölçülü massivlər;
3. massivlərdən fərqli tərkibli strukturlar - yazılar və sinif obyektləri və onlara oxşar strukturlar;
4. daxili əlaqəli dinamik strukturlar - əlaqəli siyahılar, ağaclar, qraflar.
Arxitektura nöqteyi-nəzərindən verilənlərin strukturunu belə təsnif etmək olar:
1. xətti strukturlar - birölçülü massivlər (və ya vektorlar), xətti siyahılar, xətti növbələr, steklər;
2. düzbucaqlı strukturlar - ikiölçülü (matrislər) və çoxölçülü massivlər;
3. halqavari (halqa şəkilli və ya dövrü) strukturlar - halqavari siyahılar, halqavari növbələr, qrafların bəzi realizasiyaları;
4. budaqlanan strukturlar - müxtəlif növ ağaclar, qrafların bəzi realizasiyaları;
5. şəbəkə strukturları - qraflar.
Yaradılma üsuluna görə verilənlərin strukturunu belə təsnif etmək olar:
1. adi - standart tip deyişənlər, adi (yəni dinamik olmayan) massivlər, yazılar və s.;
2. dinamik (xüsusi əməliyyatların və ya yaddaşı dinamik ayıran və boşaldan metodların köməyi ilə yaradılan və məhv edilən) - dinamik massivlər, dinamik dəyişənlər, əlaqəli siyahılar, ağaclar.
Verilənlərin strukturunun elementləri arasında əlaqələrin olub-olmamasından asılı olaraq:
I. əlaqəsiz strukturlar - vektorlar, massivlər, sətirlər, steklər, növbələr;
2. əlaqəli strukturlar - siyahılar, ağaclar, qraflar.
Proqramın işi zamanı daimilikdən asılı olaraq:
I. statik (dəyişməyən) struktur - müxtəlif tip dəyişənlər, yazılar, massivlər, siyahılar, ağaclar və qraflar (nəvaxt ki, onlar qeyd olunmuşdur və, məsələn, massiv əsasında qurulmuşdur);
2. dinamik (dəyişən) - siyahılar, ağaclar, növbələr, steklər, ümumi halda qraflar. Burada ona diqqəti yönəltmək lazımdır ki, ‘"dinamik” termini müxtəlif mənalarda istifadə edilir və yaradılma üsuluna görə dinamik olan strukturlar özlərini statik kimi apara bilər.
Statik strukturlar primitiv olmayan strukturlar kateqoriyasına aiddir ki, onlar faktiki olaraq, strukturlaşdırılmış primitiv çoxluqlar, baza və strukturlardan ibarətdir. Məsələn, vektor nizamlanmış ədədlər çoxluğu kimi təsvir edilə bilər. Tərifinə görə statik strukturlar dəyişməz olduğundan onlar üçün yaddaş bir dəfə ayrılır və onların həcmi struktur məhv edilənə qədər dəyişməz qalır. "Statik" sözü verilənlərin abstrakt tiplərindən daha çox strukturların reallaşdırılmasına aiddir. Verilənlərin ən sadə statik strukturu - massivdir. Tərifinə görə dinamik strukturlar strukturun elementlərinin yaddaşda fiziki olaraq ardıcıl (yanaşı) yerləşməməsi ilə və onun emalı prosesində strukturun ölçüsünün (elementlərin sayının) sabit olmaması və gözlənilməzliyi ilə xarakterizə olunur.
Verilənlərin dinamik strukturu aşağıdakılarla xarakterizə olunur:
• o ada malik deyil;
• proqramın icrası prosesində yaddaş onun tərəfindən ayrılır;
• strukturun elementlərinin miqdarı qeyd edilməyə bilər;
• strukturun ölçüsü proqramın icrası prosesində dəyişə bilər;
• proqramın icrası prosesində strukturun elementləri arasında qarşılıqlı əlaqənin xarakteri dəyişə bilər.
Verilənlərin dinamik strukturlarına ehtiyac, adətən, aşağıdakı hallarda yaranır:
• kifayət qədər böyük ölçülü dəyişənlər istifadə olunur (məsələn, böyük ölçülü massivlər) ki, onlar proqramın bir hissəsində lazım olduğu halda, digər hissələrdə tamamilə lazım olmur.
• Proqramın işi prosesində massiv, siyahı və ya başqa struktur lazım olur ki, onun ölçüsü geniş həddə dəyişir və əvvəlcədən bu ölçünü bilmək mümkün olmur.
• proqram tərəfindən emal edilən verilənlərin ölçüsü verilənlər seqmentinin həcmini aşır. Dinamik strukturun elementləri yaddaşın gözlənilməz ünvanlarında yerləşdiyi üçün belə strukturun elementinin ünvanını ilkin və ya özündən əvvəlki elementin ünvanına əsasən hesablamaq mümkün olmur.
Dinamik strukturun elementlərinin arasında əlaqənin qurulması üçün göstəricilərdən (istinadlardan) istifadə olunur ki, onlar elementlər arasında aşkar əlaqələr yaradır. Yaddaşda verilənlərin belə təsviri əlaqəli təsvir adlanır.