Statik ma’lumotlar tuzilmasi vaqt o’tishi bilan o’z o’lchamini o’zgartirmaydi. Biz har doim dastur kodidagi statik ma’lumotlar tuzilmasiga qarab ularning o’lchamini bilishimiz mumkin. Bunday ma’lumotlarga teskari ravishda dinamik ma’lumotlar tuzilmasi mavjud bo’lib, bunda dastur bajarilishi davomida dinamik ma’lumotlar tuzilmasi o’lchamini o’zgartirishi mumkin.
Dinamik ma’lumotlar tuzilmasi – bu qandaydir bir qonuniyatga asoslanib shakllangan, lekin elementlari soni, o’zaro joylashuvi va o’zaro aloqasi dastur bajarilishi davomida shu qonuniyat asosida dinamik o’zgaruvchan bo’lgan ma’lumotlar tuzilmasidir. Dinamik ma’lumotlar tuzilmasi 1-rasmdagidek klassifikatsiyalanadi.
1-rasm. Dinamik ma’lumotlar tuzilmasi klassifikatsiyasi
Dasturlarda dinamik ma’lumotlar tuzilmasidan ko’pincha chiziqli ro’yhatlar, steklar, navbatlar va binar daraxtlar ishlatiladi. Bu tuzilmalar bir-biridan elementlarning bog’lanish usuli va ular ustida bajarilishi mumkin bo’lgan amallari bilan farqlanadi. Dinamik tuzilmalar massiv va yozuvdan farqli ravishda operativ xotirada ketma-ket sohalarda joylashmaydi. Ixtiyoriy dinamik tuzilma elementi 2 ta maydondan tashkil topadi: tuzilma tashkil etilishiga sabab bo’layotgan informatsion maydon va elementlarning o’zaro aloqasini ta’minlovchi ko‘rsatkichli maydon.
6, Dinamik ma’lumotlar tuzilmasi klassifikatsiyasi
Ko'pincha jiddiy dasturlarda siz ish paytida hajmi va tuzilishi o'zgarishi kerak bo'lgan ma'lumotlardan foydalanishingiz kerak. Dinamik qatorlar bu erda yordam bermaydi, chunki qancha xotira ajratilishi kerakligini oldindan aytib bo'lmaydi - bu faqat ish paytida aniqlanadi. Masalan, biz matnni tahlil qilishingiz va unda qanday so'zlar va qancha miqdorda mavjudligini aniqlashimiz kerak va bu so'zlarni alifbo tartibida tartibga solish kerak.
Hammasi bo'lib, dinamik ma'lumotlar tuzilishining 6 ta asosiy turi mavjud:
Stek
Navbat
Ro’yhat
Daraxt
Graf
Ro‘yxat. Ro'yxatning 3 turi mavjud:
Bir bog’lamli (chiziqli)
Ikki bog’lamli
Siklik
Bir bog'lamli ro'yxat navbatga o'xshaydi, lekin undan farqli o'laroq, ro'yxat bilan ishlaganda, siz istalgan joyga biron bir narsani qo'shishingiz va ro'yxatning yuqori qismida faqat bitta ko'rsatgichdan foydalanishingiz mumkin.
Ikkala bog'langan ro'yxat. Bir bog'lamli ro'yxat bilan ishlashda ko'plab muammolar ulardagi oldingi elementga o'tishning iloji yo'qligidan kelib chiqadi
1-rasm. Ro’yhat tuzilishi
Navbat - bu elementlarning to'plamidir, unda yangi elementlarni qo'shishga ruxsat beriladi (u navbatning boshlanishi deb ataladi) va mavjud elementlarni faqat ikkinchi chetidan o'chirish, qaysi biri? chiziqning oxiri deb nomlangan.
Stek - bu elementlarning to'plami bo'lib, unda yangi elementlarni qo'shish va mavjud elementlarni faqat bitta uchidan olish mumkin bo'ladi.
Zamonaviy kompyuterlarda stek quyidagi maqsadlarda ishlatiladi:
mahalliy o'zgaruvchilarni aniqlash
protsedura yoki funktsiya parametrlarini joylashtirish
Qaytish manzilini saqlash (protseduradan qaysi manzilga qaytishingiz kerak)
vaqtincha ma'lumotlarni saqlash, ayniqsa Assembler-da dasturlash paytida