Data Strukturlarının növləri.Array data strukturu (part 2)

Ilkin Ismayilov
Pragmatech
Published in
5 min readAug 30, 2020

Öncəki məqalədə data strukturların növlərindən olan Stack data strukturu haqqında danışmışdıq.İndi isə Array data strukturu haqqında danışacayıq.
Bu məqalədə yazılmış kodlar python dilindən istifadə edilərək yazılıb.

Array əsas data strukturlarından biridir. Ən çox istifadə edilənlərdən biridir və daha mürəkkəb data strukturlarının tətbiqi üçün əsasdır.

Array, müəyyən edilmiş növ (int,float və.s) elementləri ehtiva edən sabit ölçülü bir topludur.

Data strukturlarını təhlil edərkən ən çox yayılmış bəzi əməliyyatları yerinə yetirərkən onların nə qədər səmərəli olması ilə maraqlanırıq. Misal olaraq bir elementi göstərmək, bir element axtarmaq, bir element əlavə etmək, bir elementi silmək kimi.

Niyə Array istifadə edek?

Kompüter proqramlaşdırmasında əksər hallarda oxşar tipli çox sayda məlumatın saxlanması tələb olunur. Bu qədər məlumatı saxlamaq üçün çox sayda dəyişən təyin etməliyik. Proqramları yazarkən bütün dəyişənlərin adlarını xatırlamaq çox çətin olacaq. Bütün dəyişənləri fərqli bir adla adlandırmaq əvəzinə, Array müəyyənləşdirmək və bütün elementləri saxlamaq daha yaxşıdır.

Aşağıdakı nümunə də, müəyyən bir problem üçün kod yazarkən Array necə faydalı ola biləcəyini göstərir.Bu nümunədə, altı fərqli mövzuda bir tələbənin qiymətləri var. Problem şagirdin bütün qiymətlərinin ortalamasını hesablamaq niyyətindədir. Bu problemə iki misal üzərindən baxaq, birində arraydən istifadə etmirik, digəri məlumatların saxlanılması üçün arraydən istifadəsini edirik.

Array istifadə etmədən:

marks_1 = 56
marks_2 = 78
marks_3 = 88
marks_4 = 76
marks_5 = 56
marks_6 = 89
avg = (marks_1 + marks_2 + marks_3 + marks_4 + marks_5 +marks_6) / 6print(avg)

Array istifadə edən zaman:

import array as arra=arr.array('i', [11, 22, 38, 31, 37, 12, 46])
for x in a:
print(x)

Gördüyümüz kimi array-dən istifadə etmək çox daha rahat və əlverişlidir.

Pythonda Array yaratmaq

Pythonda arraylər listdən fərqlidir; listlərdə data tiplərinin (data types) hər biri ola bilər, halbuki arraylərdə yalnız eyni məlumat tipli elemenlər ola bilər.

Python-da arraydən istifadə etmək üçün Array adlı modulu proqramızıza əlavə (import) etmıyimiz lazımdır.

Qeyd: Arraydə tam və kəsr ədədlər kimi həqiqi rəqəmlər olmalıdır, heç bir string tip dataya icazə verilmir.

Aşağıdakı kod, hesab balansını saxlamaq üçün pythonda bir Array necə yarada biləcəyinizi göstərir.

import array
balance = array.array('i', [300,200,100])
print(balance)

Python’da Array tanımlamağın yolları

Aşağıdakı sintaksisdən istifadə edərək, Pythonda array elan edə bilərik.

arrayName = array.array(type code for data type, [array,items])

Aşağıdakı şəkil sintaksisini izah edir.

  1. Arrayin adı : dəyişənlər üçün elan etdiyimiz ad
  2. Modul: Python-da array yaratmaq üçün “array” adlanan xüsusi bir modul var — istifadə etməzdən əvvəl onu əlavə etmək lazımdır.
  3. Metod: array modulunda array-i işə salmaq üçün bir metod var. İki arqumenti olur : yazı kodu və elementlər lazımdır.
  4. Kod növü: mövcud yazı kodlarından istifadə edərək məlumat növünü təyin edir. (aşağıdakı siyahıya baxın)
  5. Elementlər: kvadrat mötərizədə olan array elementlərini göstərir, məsələn [130,450,103]

Aşağıdakı cədvəldə arraylərdə istifadə etmək üçün mövcud tip kodlar göstərilir:

Array-də müəyyən elementi necə əldə etmək olar?

Biz array istifadə edərək orada olan hər hansı elementi əldə edib istifadə edə bilərik. Sintaksis olaraq yazlış şəkli aşağıdakı kimidir :

arrayName[indexNum]

misal olaraq isə,

balance[1]

belə göstərə bilərik

Aşağıdakı şəkil bu məsəsləni daha dəqiq izah edir.

Burada, arrayin indeksindən istifadə edərək arrayin ikinci dəyərinə, index olaraq isə 1-ə çatdıq. Bunun nəticəsi də arrayin ikinci dəyəri olan 200 əldə etmiş olacayıq.

import array
balance = array.array('i', [300,200,100])
print(balance[1]) # nəticə : 200

Array üzərində bəzi əməliyyatlar

  • Traverse − bütün sıra elementlərini bir-bir çap edin.
  • Insertion − Verilmiş indeksdə bir element əlavə edir.
  • Deletion − Verilən indeksdəki elementi silir.
  • Search − Verilmiş indeksdən və ya dəyərdən istifadə edərək elementi axtarır.
  • Update − Verilən indeksdəki elementi yeniləyir.

Traverse.

Yuxar;da dediyimiz kimi array-də bütün sıra elementlərini bir-bir çap edir.misal olaraq aşağıdakı kod nümunəsinə baxaq.

import array
balance = array.array('i', [300,200,100])
for x in balance:
print(x)
OUTPUT
300
200
100

Gördüyümüz kimi for istifadə ederək bütün elementləri bir-bir çap edə bildik.

İnsert(əlavə etmə)

Bu əməliyyatla serialın əvvəlində, sonunda və ya istənilən indeksində bir və ya bir neçə element əlavə edə bilərsiniz. Bu metod iki arqument : indeks və dəyər alıq. Sintaksis olaraq :

arrayName.insert(index, value)

Misal olaraq, yuxarıdakı “balance” arrayimizin 2-ci indeksinə yeni bir element əlavə edək.Bunun üçün kodumuzu aşağıdakı kimi yazmalıyıq :

import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)

İndi isə yeni elementin əlavə edilib-edilməməsinə baxmaq üçün arrayimizi çap edək :

import array
balance = array.array('i', [300,200,100])
balance.insert(2, 150)
print(balance)
OUTPUTarray('i', [300,200,150,100])

Gördüyümüz kimi 2-ci indeksə verdiyimiz dəyər əlavə edilmiş oldu.

Delete (Silmə)

Bu əməliyyatla, bir elementi arraydən silə bilərsiniz. Bu metod yalnız bir arqument qəbul edir. Bu metodu işlədikdən sonra array elementləri yenidən düzəldilir və indekslər yenidən təyin olunur.Sintaksis olaraq :

arrayName.remove(value)

Nümunə olaraq, Arraydən 150 dəyərini çıxaraq. Hal-hazırda arrayimizdə 300, 200, 150 və 100 elementleri var. 150-i massivdən çıxarmaq üçün yalnız metod arqumentinin içərisində 150 yazmalıyıq. Sadədi, eləmi?

import array
balance = array.array('i', [300,200,150,100])
balance.remove(150)
print(balance)
OUTPUT
array('i', [300,200,100])

Gördüyümüz kimi, arraydə dəyəri 150 olan elementi silmiş olduq.

Search (Axtarış)

Bu əməliyyatla array-də bir element axtara bilərsiniz. Bu metod yalnız bir arqument qəbul edir. Sintaksis olaraq :

arrayName.index(value)

Array-də hansl dəyəri axtarmaq istyiriksə “value” yerinə yazırıq.Misal olaraq aşağıdakı nümunəyə baxaq :

import array
balance = array.array('i', [300,200,150,100])
print(balance.index(150))
OUTPUT
2

Burada “150” dəyərini axtardıq və cavab olaraq onun hansı indeksdə olduğunu öyrənmiş olduq.

Update (Yeniləmə)

Bu əməliyyat, insert əməliyyatına bənzəyir lakin burada biz array-ə element əlavə etmirik sadəcə array-də olan elementi dəyişirik. Bu metod iki arqument : indeks və dəyər gözləyir. Sintaksi olaraq :

arrayName.udpate(index, value)

Misal üzərindən daha yaxsı başa düşək.

import array
balance = array.array('i', [300,200,150,100])
balance[2] = 145
print(balance)
OUTPUT
array('i', [300,200,145,100])

Burada görürük ki, Əvvəlcə “balance” arrayinin 2ci indeksindəki elementin dəyəri 150-dir.Update etdikdən sonra görürük ki, dəyəri 145-ə bərabır oldu .Çap etdikdə, 2ci indeksdə ki elementin dəyərinin dəyişməsini görmüş olduq.

Mənbələr :

  1. https://www.javatpoint.com/data-structure-array
  2. https://www.tutorialspoint.com/data_structures_algorithms/array_data_structure.htm
  3. https://www.guru99.com/array-data-structure.html#1
  4. https://dbader.org/blog/python-arrays

--

--