Ma'lumot tuzilmalari - bu siz oldindan rejalashtirilgan formatda ma'lumotlarni saqlash va tashkil etish kabi amalga oshirmoqchi bo'lgan ko'p narsalarning asosidir, shuning uchun ularga samarali usulda kirish va o'zgartirish mumkin bo'ladi. Zarur bo'lganda ma'lumotni topish va olishni osonlashtiradi. Ma'lumotlar tuzilmalari asosan turli xil operatsiyalarni bajarish uchun buyurtma qilingan ma'lumotlarni saqlash uchun ishlatiladigan ma'lumotlarning mantiqiy ifodasidir. Bizda kompyuter dasturida ma'lumotlarni saqlash va olishning bir qancha usullari mavjud. Stack va Array ma'lumotlarini ob'ektga yo'naltirilgan dasturlash tilida saqlashning eng keng tarqalgan ikkita usuli. Siz, albatta, massiv bilan stakandan foydalanishingiz mumkin. Biroq, ikkalasining asosiy farqi kirishdir.

Stack nima?

Yig'ish - bu chiziqli, ro'yxat ko'rinishidagi ma'lumotlar tuzilishi bo'lib, ular elementlarning ketma-ket yig'ilishi bilan jismoniy yig'ma yoki qoziqqa o'xshash bo'lib, unda elementlar bir-birining ustiga kitoblar to'plami singari joylashtirilgan. Elementlar shu tarzda joylashtirilganki, yangi elementlar qo'shilishi yoki mavjud bo'lgan elementlar faqat stakaning tepasi deb ataladigan uchidan chiqarilishi mumkin. Stack bu dinamik ma'lumotlarning tuzilishi bo'lib, uning hajmi doimiy ravishda o'zgarib turadi, chunki elementlar stakandan chiqarilib, chiqariladi. Push va pop - bu stekda bajariladigan ikkita asosiy operatsiyalar. Push deganda buyumlar suyakka qo'shiladi va pop narsalar ob'ektlar stekdan chiqariladi. Bu LIFO deb nomlangan qat'iy buyruqqa (oxirgi-ichida birinchi bo'lib) yaqinda qo'shilgan elementlar birinchi bo'lib chiqadi va birinchi qo'shilganlar ustunlardan tashqarida bo'ladi.

Array nima?

Massiv bu chiziqli ma'lumotlar tuzilishi bo'lib, u doimo shunga o'xshash ma'lumotlar turlarining elementlari to'plami sifatida belgilanadi va qiymat massiv indekslari deb nomlangan oldindan belgilangan joyda saqlanadi. Massalardan farqli o'laroq, massivlar statik ob'yektlar bo'lib, ularning o'lchamlari massiv ajratilganidan keyin bir xil bo'lib qoladi, uning o'lchamlarini o'zgartirish mumkin emas. Xuddi shu ma'lumot turiga tegishli bo'lgan bir nechta elementlarda shunga o'xshash hisoblashlarni amalga oshirishning samarali usullaridan biri. U o'xshash turdagi ma'lumotlarning bir yoki bir nechta qiymatlarini saqlashi va ularga indekslari bo'yicha kirishni ta'minlaydi. Tasodifiy kirish ma'lumotlari tuzilishi bo'lib, unda ob'ektlar chiziqli saqlanadi va istalgan vaqtda ulardan foydalanish mumkin.

Stack va Array o'rtasidagi farq

Stack va Array ma'nolari

Stack - bu ma'lumotlarning chiziqli strukturasi bo'lib, ular ma'lumotlar to'plami bilan ifodalanadigan ma'lumotlarning asosiy tuzilishi bo'lib, ular fizik stack yoki qoziq shaklida joylashtirilgan. Stek - bu ob'yektlarni faqat bitta uchidan joylashtirilishi va olib tashlanishi mumkin bo'lgan ma'lum bir tartibda joylashtirilgan ob'ektlarning ketma-ket to'plami. Bir qator, o'z navbatida, dasturning murakkabligini kamaytirish uchun ko'plab ma'lumot qiymatlarini saqlash uchun foydalaniladigan tasodifiy kirish ma'lumotlari tuzilishi. Bir qatorda ob'ektlar xotirani samarali boshqarish uchun ketma-ket saqlanadi.

Ma'lumot turi

Stek - mavhum ma'lumot turi, bu turli xil ma'lumotlarga ega bo'lgan turli xil ma'lumotlarni o'z ichiga olishi mumkin bo'lgan turli xil ma'lumotlarni saqlashi mumkin bo'lgan ob'ektlarning ketma-ket to'plamini anglatadi. Bu cheklangan kirish ma'lumotlari tuzilmasi bo'lib, unda ob'ektlarni ma'lum bir tartibda qo'shish yoki o'chirish mumkin. Bir qator faqat bir xil ma'lumotlarni saqlaydi, chunki bu shunga o'xshash ma'lumotlar to'plamiga tegishli. Massivlar o'lchamda o'rnatiladi va faqat bir xil turdagi ma'lumotlarni qabul qiladi. Stacklardan farqli o'laroq, massivlarda istalgan vaqtda kirish mumkin bo'lgan buyurtma qilingan elementlarning ro'yxati mavjud.

Ish printsipi

Yig'ish - bu ma'lumotlarni LIFO yoki FILO bo'lgan belgilangan tartibda tashkil qilishni kutadigan ma'lumotlarning chiziqli tuzilishi. Elementlarni qo'shib qo'yish mumkin va ularni faqat uchidan yuqoriga ko'tarilgan (LIFO) buyrug'iga binoan qo'shib qo'yish mumkin, chunki yaqinda qo'shilgan ob'ekt ustunlardan birinchi bo'lib olinadi yoki birinchisidir. oxirgi (FILO) olib tashlanadi. Massiv - bu istalgan vaqtda kirishingiz mumkin bo'lgan ob'yektlar to'plamidir, ularning tarkibiga qaramasdan tasodifiy qo'shilishi va o'chirilishi mumkin.

Operatsiyalar

Stack - bu ikkita asosiy operatsiya bilan ob'ektlarni buyurtma ravishda namoyish qilish: push va pop. Bu xuddi bir uyum kitob kabi bir-birining ustiga ob'ektlarning joylashishi o'xshashligini anglatadi. Push predmetlarni stakka qo'shish uchun ishlatiladi, pop esa stakandan narsalarni olib tashlaydi. Ushbu ikkita operatsiya to'plamga ob'ektlarni qo'shadi va mos ravishda moslamani ob'ektdan olib tashlaydi. Ko'p operatsiyalarni siljitish, qo'shib qo'yish, o'chirish, qidirish, saralash va birlashtirish kabi qatorlarda bajarish mumkin. Massivda har bir element bitta qiymatga ega bo'lgan bir nechta elementlardan iborat bo'lishi mumkin.

Stack vs. Array: taqqoslash jadvali

Arack va Stack haqida qisqacha ma'lumot

Garchi ikkalasi ham ma'lumotlarni saqlash va ulardan foydalanishning eng samarali usullari bo'lsa-da, siz ishlash printsipi va kirishni boshqarish bundan mustasno, massiv bilan stakandan foydalanishingiz mumkin. Yig'ish - bu ma'lumotlar tuzilishidagi ma'lumotlar to'plamining asosiy namoyishi bo'lib, unda LIFO yoki FILO tartibida stakaning yuqorisidagi elementlar joylashtirilgan va olib tashlangan bo'lishi kerak. . Massiv bu statik ob'ekt bo'lib, unda elementlar soni belgilanadi va ustunlardan farqli o'laroq, massivdagi elementlar buyurtmadan qat'iy nazar har ikkala tomondan qo'shilishi va olib tashlanishi mumkin.

Adabiyotlar

  • Tasvir krediti: https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Array_of_array_storage.svg/500px-Array_of_array_storage.svg.png
  • Tasvir krediti: https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Data_stack.svg/500px-Data_stack.svg.png
  • Axo, Alfred V. Ma'lumotlarning tuzilishi va algoritmlari. Dehli: Pearson Education India, 2002 yil. Chop etish
  • Vitter, Jeffri Skott. Tashqi xotira uchun algoritmlar va ma'lumotlar tuzilmalari. Breda, Niderlandiya: Endi nashriyot, 2008. Bosib chiqarish
  • Deyl, Nell va boshqalar. Java-dan foydalangan holda ob'ektga yo'naltirilgan ma'lumotlar tuzilmalari. Burlington: Jons va Bartlett nashriyotchilari, 2016. Chop etish