28
2-§. Ma'lumotlarning abstrak turlari va ma'lumotlar strukturalari
“Yomon dasturchilar kod haqida oʻylashadi. Yaxshi dasturchilar esa
ma‟lumotlar strukturasi va ularning aloqalari haqida oʻylashadi.”
Linus Torvalds, Linux yaratuvchisi.
Ma‟lumotlar strukturasi
(ing. data structure) - bu hisoblashda
turli xil bir tipli va (yoki) mantiqiy bogʻliq ma‘lumotlarni saqlash va
qayta ishlashga imkon beradigan dastur birligi. Ma‘lumotlarni qoʻshish,
izlash, oʻzgartirish va yoʻq qilish uchun ma‘lumotlar
tarkibi uning
interfeysini tashkil etadigan funksiyalar toʻplamini taqdim etadi.
―Ma‘lumotlar strukturasi‖ atamasining bir-biriga yaqin boʻlgan bir
nechta ma‘nolarini anglatuvchi variantlari mavjud:
-
Ma‘lumotlarning abstrakt turi;
-
Ma‘lumotlarning ba‘zi bir abstrakt turlarini realizatsiya qilish;
-
Ma‘lumotlar tipining nusxasi, masalan, aniq bir
roʻyxat
;
-
Funksional dasturlash kontekstida oʻzgarishlarda davom
etadigan noyob identifikator.
Turli xil versiyalar mavjud boʻlishiga qaramay, u norasmiy ravishda
ma‟lumotlar strukturasi
deb nomlanadi.
Ma‘lumotlar strutkturasi ma‘lumotlar turlari,
havolalar va ular
ustida amallar yordamida tanlangan dasturlash tilida shakllanadi.
Turli xil ma‘lumotlar strukturalari turli xil ilovalar uchun mos
keladi; ularning ba‘zilari ma‘lum vazifalar uchun tor ixtisoslashgan.
Masalan, B-daraxtlar odatda ma‘lumotlar bazalarini yaratishga yaroqli
boʻlsa, xesh jadvallar hamma joyda har xil lugʻatlarni
yaratish uchun
ishlatiladi, masalan, domen nomlarini kompyuterlarning internet-
manzillariga xaritalash uchun.
Dasturiy ta‘minotni ishlab chiqishda,
amalga oshirishning
murakkabligi va dasturlarning ishlash sifati ma‘lumotlar strukturalarning
toʻgʻri tanlanishiga sezilarli darajada bogʻliqdir. Ushbu tushuncha
dasturiy
ta‘minot
arxitekturasining
boshida
algoritmlar
emas,
ma‘lumotlar strukturalari joylashtirilgan rasmiy ishlab chiqish usullari
va dasturlash tillarini keltirib chiqardi. Ushbu
tillarning aksariyatida
29
ma‘lumotlar tuzilmalarini turli xil ilovalarda xavfsiz qayta ishlatishga
imkon beradigan modullikning bir turi mavjud. Java, C# va C++ kabi
obyektga yoʻnaltirilgan tillar ushbu yondashuvga misoldir.
Koʻpgina klassik ma‘lumotlar strukturalari dasturlash tillarining
standart kutubxonalarida taqdim etiladi yoki toʻgʻridan-toʻgʻri dasturlash
tillariga kiritilgan. Masalan, xesh jadvali ma‘lumotlar tuzilishi Lua, Perl,
Python, Ruby, Tcl va boshqa dasturlash tillariga kiritilgan boʻlib, C++
standart shablonlar kutubxonasida (STL) keng qoʻllaniladi.
Koʻpgina ma‘lumotlar tuzilmalari uchun
asosiy qurilish bloklari
massivlar, yozuvlar (C tilida strukturalar va Paskaldagi yozuvlar),
birlashmalar (C da union) va havolalardir.