Verilənlər strukturuna (Data structures) giriş.

Ilkin Ismayilov
Pragmatech
Published in
5 min readAug 1, 2020

Verilənlər strukturu, məlumatdan səmərəli istifadə oluna bilməsi üçün bir kompüterdə məlumatların təşkili və saxlanmasının xüsusi bir yoludur.Verilənlər strukturlarına misal olaraq Arrays, Linked List, Stack, Queue və s. göstərmək olar. Verilənlər strukturu Kompüter Elmlərinin demək olar bütün sahələrində, yəni Əməliyyat Sistemi, Tərtibatçı Dizayn, Bədii kəşfiyyat, Qrafika və sair mövzularda geniş istifadə olunur.

Verilənlər strukturları, proqramçılara məlumatları səmərəli idarə etməyə imkan verdikləri üçün bir çox kompüter elmləri alqoritmlərinin əsas hissəsidir. Proqramın əsas funksiyası istifadəçi məlumatlarını mümkün qədər tez saxlamaq və əldə etmək olduğundan, bir proqramın və ya proqramın fəaliyyətinin yaxşılaşdırılmasında mühüm rol oynayır.

Kompüter baxımından bir verilənlər strukturu, sonradan daha səmərəli istifadə oluna bilməsi üçün məlumatları kompüterin yaddaşında saxlamaq və təşkil etmək üçün xüsusi bir yoldur. Məlumatlar bir çox müxtəlif yollarla tənzimlənə bilər, məsələn məlumatların müəyyən bir təşkili üçün məntiqi və ya riyazi model verilənlər strukturu adlanır. Müəyyən bir məlumat modelinin müxtəlifliyi iki amildən asılıdır :

  • Birincisi, məlumatların real dünya obyekti ilə faktiki əlaqələrini əks etdirmək üçün strukturu qurulmalıdır.
  • İkincisi, formalaşma kifayət qədər sadə olmalıdır ki, hər kəs lazım olduqda məlumatları səmərəli şəkildə emal edə bilsin.

Verilənlər strukturu məlumatlarımızı saxlamağımız və təşkil etməyimizdir. Məsələn, bir otaqda kitablar təşkil etməyi düşünün, bu kitabları bir rəfdə saxlaya bilərik, ya da bir masa üzərində üst-üstdə yığa bilərik və ya hətta onları təsadüfi olaraq otağın hər hansı bir yerinə qoya bilərik.

Beləliklə, kitabları bir otaqda yerləşdirmək üçün fərqli seçimlərimiz var və ya başqa sözlə kitabları tutmaq üçün fərqli strukturlarımız var. Kompüterlərdə bənzər bir ssenari var, buna görə məlumatlarımızı istədiyimiz kimi təşkil edə bilərik və məlumatların təşkili üçün bu fərqli üsullar fərqli verilənlər strukturlarıdır.

Niyə Verilənlər strukturuna ehtiyacımız var?

Verilənlər strukturuna ehtiyacımız var, çünki onlardan istifadənin bir neçə üstünlükləri var, onlardan bəziləri aşağıdakılardır:

1. Məlumatların təşkili: Xüsusi məlumatlara ehtiyac duyduğumuz zaman səmərəli əldə edilə bilməsi üçün məlumatların düzgün qurulması lazımdır. Verilənlər strukturu məlumatların təşkili üçün müxtəlif yollar təqdim edir, buna görə məlumatları tələbata əsasən müxtəlif verilənlər strukturlarında saxlamaq imkanlarımız var.

2. Səmərəlilik: Məlumatları təşkil etməyimizin əsas səbəbi səmərəliliyi artırmaqdır. Məlumatları massivlərdə saxlaya bilərik, onda niyə Linked lists (əlaqəli siyahılar) və digər verilənlər strukturu lazımdır? massivlərdə əlavə, yeniləmə və silmək kimi bir neçə əməliyyat aparmalı olduğumuzda bəzi digər verilənlər strukturlarına nisbətən massivlərdə daha çox vaxt tələb olunur. Beləliklə, digər verilənlər strukturlarına maraq göstərməyimiz, səmərəliliklə əlaqədardır.

Verilənlər strukturları ilk növbədə iki hissəyə bölünür:

  1. Sadə (Primitive) verilənlər strukturları
  2. Mürəkkəb (Non-Primitive) verilənlər strukturları

Sadə Verilənlər strukturu

Sadə verilənlər strukturları, sistem tərəfindən məlumatların əvvəlcədən müəyyən edilmiş şəkildə saxlanılması üsullarıdır. Bu məlumatlar üzərində edilə biləcək əməliyyatlar dəsti də əvvəlcədən müəyyən edilmişdir. Char, int, float, double, sadə verilənlər strukturlarına nümunədir.

Mürəkkəb verilənlər strukturları

Sadə verilənlər strukturlarından istifadə etməklə hazırlanan məlumat strukturlarına mürəkkəb verilənlər strukturları deyilir. Məlumat toplusunu saxlamaq üçün istifadə olunur. İki hissəyə bölmək olar:

  1. Xətti verilənlər strukturu
  2. Qeyri-xətti verilənlər strukturu

Xətti verilənlər strukturu

Elementlərin ardıcıl və ya xətti şəkildə qurulduğu və bir-birinin ardınca bağlandığı verilənlər strukturlarına xətti verilənlər strukturları deyilir.

Xüsusiyyətlər :

  • Məlumat elementləri bir dəfəyə keçə bilər(Single run).
  • Elementlər müəyyən bir qaydada bitişik şəkildə bağlanır.
  • Bunu həyata keçirərkən, yaddaşın yaxşı istifadəsini təmin etməyən Linked list istisna olmaqla əvvəlcədən lazımi miqdarda yaddaş elan olunur.
  • Nümunələr : Array, Stack, Queues, Linked list.

Arrays

Bir sıra, bitişik yaddaş yerlərində saxlanan əşyaların toplusudur. Fikir eyni tipli çoxlu əşyaları birlikdə saxlamaqdır.

Stacks

Yığma (Stacks) LIFO(Last In, First Out) prinsipinə əməl edən məlumat quruluşudur.

Queues

Növbə, FİFO (First In, First Out) prinsipinə uyğun bir verilənlər strukturudur.

Linked List

Əlaqəli siyahı(Linked List) dinamik bir verilənlər strukturudur. Bir siyahıdakı əlaqələrin sayı sabit deyil və böyüyə və kiçilə bilər.

Qeyri-xətti verilənlər strukturu

Elementlərin ardıcıl olaraq yerləşdirilmədiyi verilənlər strukturuna qeyri-xətti verilənlər strukturu deyilir.

Xüsusiyyətlər :

  • Bunlarda məlumat elementləri elementlər arasında iyerarxik əlaqəni nümayiş etdirən birdən çox elementə əlavə olunur.
  • Çevrilmə, daxiletmə və silmə ardıcıllıqla aparılmır.
  • Yaddaşdan səmərəli istifadə edir və əvvəlcədən bir yaddaş bəyannaməsi tələb etmir.
  • Examples: Trees and Graphs.

Trees

Bir ağac (Tree), iyerarxik bir şəkildə təbii olaraq məlumatı saxlayan bir iyerarxik verilənlər strukturudur.

Graphs

Bir qrafik, bəzi cüt obyektlərin bağlantılarla bağlandığı obyektlər toplusudur. Bir-biri ilə əlaqəli cisimlər yuxarı nöqtələr adlandırılan nöqtələrlə təmsil olunur və ucları birləşdirən bağlar kənar xəttlər(haşiyə) adlanır.

Verilənlər strukturlarında əməliyyatlar

Səmərəli verilənlər strukturunun dizaynı zamanı verilənlər strukturlarında aparılacaq əməliyyatlar nəzərə alınmalıdır. Verilənlər strukturunda ən çox istifadə olunan əməliyyatlar geniş şəkildə aşağıdakı tiplərə təsnif edilir :

  1. Create:- Yaratma əməliyyatı proqram elementləri üçün yaddaşın saxlanması ilə nəticələnir. Bu bəyannamə bəyanatı ilə edilə bilər. verilənlər strukturunun yaradılması ya tərtib zamanı, ya da işə salınma müddətində baş verə bilər. Yaradılması üçün C dilinin malloc() funksiyasından istifadə olunur.
  2. Destroy:- Məhv etmə əməliyyatı, verilənlər strukturu üçün ayrılmış yaddaş sahəsini məhv edir. verilənlər strukturunu məhv etmək üçün C dilinin free() funksiyasından istifadə olunur.
  3. Selection:- Seçim əməliyyatı bir verilənlər strukturu daxilində müəyyən bir məlumat əldə etməklə məşğul olur.
  4. Updation:- Verilənlər strukturundakı məlumatları yeniləyir və ya dəyişdirir.
  5. Searching:- Məlumat maddələrinin siyahısında istədiyiniz məlumat elementinin varlığını tapır, Müəyyən şərtlərə cavab verən bütün elementlərin yerlərini də tapa bilər.
  6. Sorting:- Çeşidləmə, verilənlər strukturundakı bütün məlumat elementlərinin müəyyən bir qaydada qurulması, məsələn ya yüksələn qaydada ya da eniş qaydasında olmasıdır.
  7. Merging:- Birləşmə, iki fərqli sıralanmış siyahıdakı məlumat elementlərinin vahid bir sıralanmış siyahıya birləşdirilməsi prosesidir.
  8. Splitting:- Parçalanma, vahid siyahının çox siyahıya bölünməsi prosesidir.
  9. Traversal:- Keçid, siyahının hər bir nodunu sistematik bir şəkildə ziyarət etməkdir.

Menbeler :

  1. https://www.cseworldonline.com/data-structure/Introduction-Data-Structures.php
  2. https://beginnersbook.com/2018/10/data-structure-introduction/#:~:text=A%20data%20structure%20is%20a,and%20use%20the%20data%20efficiently.
  3. https://www.studytonight.com/data-structures/introduction-to-data-structures
  4. https://www.codesdope.com/course/data-structures-introduction/
  5. https://afteracademy.com/blog/introduction-to-data-structure

--

--