Stek va navbat
Stack - tartiblangan roʻyxat boʻlib, unda roʻyxat elementlarini kiritish va oʻchirish faqat yuqori deb ataladigan bir uchida amalga oshirilishi mumkin. Shu sababli, stek oxirgi kelgan birinchi chiqadi (LIFO) ma'lumotlar tuzilmasi sifatida qabul qilinadi. Navbat, shuningdek, tartiblangan ro'yxat bo'lib, unda ro'yxat elementlarini kiritish orqa deb ataladigan bir uchida, elementlarni o'chirish esa old deb ataladigan ikkinchi uchida amalga oshiriladi. Bu kiritish va oʻchirish mexanizmi navbatni birinchi kelgan birinchi chiqadi (FIFO) maʼlumotlar tuzilmasi qiladi.
Stek nima?
Yuqorida aytib o'tilganidek, stek - bu yuqori deb ataladigan faqat bir uchidan elementlar qo'shiladigan va olib tashlanadigan ma'lumotlar strukturasi. Staklar surish va pop deb ataladigan faqat ikkita asosiy operatsiyaga imkon beradi. Surish operatsiyasi stekning yuqori qismiga yangi element qo'shadi. Pop operatsiyasi stekning yuqori qismidagi elementni olib tashlaydi. Agar stek allaqachon to'lgan bo'lsa, surish operatsiyasi bajarilganda, u stekning to'lib ketishi deb hisoblanadi. Agar pop operatsiyasi allaqachon bo'sh stekda bajarilsa, u stekning quyi oqimi deb hisoblanadi. Stekda bajarilishi mumkin bo'lgan operatsiyalar soni kam bo'lganligi sababli, u cheklangan ma'lumotlar strukturasi sifatida qaraladi. Bundan tashqari, surish va pop operatsiyalarini aniqlash usuliga ko'ra, stekga oxirgi qo'shilgan elementlar birinchi navbatda stekdan chiqib ketishi aniq. Shuning uchun stek LIFO ma'lumotlar strukturasi sifatida ko'rib chiqiladi.
Navbat nima?
Navbatda elementlar navbatning orqa qismidan qo'shiladi va navbatning old qismidan olib tashlanadi. Avval qo'shilgan elementlar navbatdan o'chirilishi sababli, u FIFO tartibini saqlaydi. Elementlarni qo'shish va olib tashlashning bunday tartibi tufayli navbat to'lov liniyasi g'oyasini ifodalaydi. Navbat bilan qo'llab-quvvatlanadigan umumiy operatsiyalar navbatga qo'yish va navbatdan chiqarish operatsiyalaridir. Navbatdagi operatsiya navbatning orqa qismiga element qo'shadi, navbatdan chiqarish operatsiyasi esa navbatning old qismidan elementni olib tashlaydi. Umuman olganda, navbatlarda xotira cheklovlaridan tashqari navbatga qo‘shilishi mumkin bo‘lgan elementlar soni bo‘yicha cheklov yo‘q.
Stek va navbat oʻrtasidagi farq nima?
Steklar ham, navbatlar ham tartiblangan roʻyxatlar boʻlsa-da, ularda bir qancha muhim farqlar mavjud. Steklarda elementlarni qo'shish yoki o'chirish faqat yuqori deb ataladigan bir uchidan amalga oshirilishi mumkin, navbatlarda narsalarni qo'shish orqa deb ataladigan bir uchidan, elementlarni o'chirish esa old deb ataladigan ikkinchi uchidan amalga oshiriladi. Stekda stekga oxirgi qo'shilgan elementlar birinchi navbatda stekdan olib tashlanadi. Shuning uchun stek LIFO ma'lumotlar strukturasi sifatida qaraladi. Navbatlarda avval qo'shilgan narsalar navbatdan o'chiriladi. Shuning uchun navbat FIFO maʼlumotlar tuzilmasi sifatida qabul qilinadi.
Tegishli havola:
Steck va heap oʻrtasidagi farq