O’zbekiston Respublikasi Samarqand Davlat Universiteti Raqamli texnologiyalar fakulteti Amaliy



Yüklə 112,14 Kb.
səhifə3/10
tarix21.04.2022
ölçüsü112,14 Kb.
#115440
1   2   3   4   5   6   7   8   9   10
stack va navbat

Taqqoslash jadvali


Taqqoslash uchun asos

Yig'ma

Navbat

Ish printsipi

LIFO (Oxirgi birinchi chiqish)

FIFO (Birinchisi birinchi bo'lib)

Tuzilishi

Xuddi shu uchi elementlarni qo'shish va o'chirish uchun ishlatiladi.

Bir uchi kiritish uchun, ya'ni orqa uchi, boshqa uchi elementlarni o'chirish uchun, ya'ni old uchi uchun ishlatiladi.

Amaldagi ko'rsatgichlar soni

Bittasi

Ikki (oddiy navbatda)

Amaliyotlar

Push va Pop

Enqueue va dequeue

Bo'sh holatni tekshirish

Top == -1

Old == -1 || Old == Orqa + 1

To'liq holatni tekshirish

Top == Maks - 1

Orqa == Maks - 1

Variantlar

Uning variantlari yo'q.

Uning dumaloq navbat, ustuvor navbat, ikki marta tugagan navbat kabi variantlari mavjud.

Amalga oshirish

Oddiyroq

Nisbatan murakkab
    1. Stek va Navbatni amalga oshirish

Stekni amalga oshirish



Yig'ma ikki usulda qo'llanilishi mumkin:

  1. Statik amalga oshirish stek yaratish uchun massivlardan foydalanadi. Statik amalga oshirish osonlikcha uskuna bo'lsa-da, lekin uni yaratishning moslashuvchan usuli emas, chunki stak hajmini deklaratsiyalash dasturni tuzish paytida amalga oshirilishi kerak, shundan keyin uning o'lchamini o'zgartirish mumkin emas. Bundan tashqari, statik dastur xotiradan foydalanishda unchalik samarali emas. Bir qator (dasturni ishlab chiqish vaqtida) operatsiya boshlanishidan oldin (stekni amalga oshirish uchun) e'lon qilinadi.
    Endi stakda saralanadigan elementlar soni juda oz bo'lsa, statik ravishda ajratilgan xotira behuda ketadi. Boshqa tomondan, agar stekda saqlanadigan elementlarning soni ko'proq bo'lsa, biz yangi elementlarni joylashtirishi uchun massivni uning hajmini oshirish uchun o'zgartira olmaymiz.

  2. Dinamik dastur bog'langan ro'yxat vakili deb ham ataladi va ma'lumotlar strukturasining stek turini amalga oshirish uchun ko'rsatgichlardan foydalanadi.

Navbatni amalga oshirish

Navbat ikki usulda amalga oshirilishi mumkin:

  1. Statik amalga oshirish: Agar navbat massivlar yordamida amalga oshirilsa, biz navbatda saqlamoqchi bo'lgan elementlarning aniq sonidan oldin ishonch hosil qilishimiz kerak, chunki massivning kattaligi loyihalash paytida yoki ishlov berish boshlanishidan oldin e'lon qilinishi kerak.
    Bunday holda, qatorning boshi navbatning old qismiga aylanadi va massivning oxirgi joylashuvi navbatning orqa qismi sifatida ishlaydi. Quyidagi munosabat massivlar yordamida amalga oshirilganda barcha elementlarning navbatdagi mavjudligini beradi:
    old - orqa + 1
    Agar "orqa

  2. Dinamik dastur: Ko'rsatkichlar yordamida navbatlarni amalga oshirish, asosiy kamchilik shundaki, bog'langan vakolatxonadagi tugun massiv tasviridagi mos keladigan elementga qaraganda ko'proq xotira maydonini sarf qiladi.
    Ma'lumotlar maydoni uchun har bir tugunda kamida bittadan maydon mavjud, ikkinchisi esa keyingi tugunning manzilini saqlashi kerak, bog'langan vakolatxonada esa faqat ma'lumotlar maydoni mavjud. yoki boshqa elementlar guruhi o'rtasida elementni o'chirish.



    1. Stek va Navbatdagi operatsuyalar va dasturlar.


Stekdagi operatsiyalar

Yig'mada ishlash mumkin bo'lgan asosiy operatsiyalar quyidagilar:

  1. Durang: to'plamning yuqori qismiga yangi element qo'shilganda PUSH operatsiyasi deb nomlanadi. Elementni stekka bosish elementni qo'shishni talab qiladi, chunki yangi element yuqori qismga kiritiladi. Har bir surish operatsiyasidan keyin tepa bittaga oshiriladi. Agar massiv to'la bo'lsa va unga yangi element qo'shib berilmasa, u STACK-FULL sharti yoki STACK OVERFLOW deb nomlanadi. PUSH OPERATION - funktsiya C:
    Stekni ko'rib chiqish quyidagicha e'lon qilinadi
    int stack [5], top = -1;
    bekor push ()
    {
    int element;
    agar (yuqori <4)
    {
    printf ("Raqamni kiriting");
    skanerlash ("% d", & element);
    top = top + 1;
    stack [top] = element;
    }
    boshqa
    {
    printf ("Stek to'la");
    }
    }

  2. POP: Agar element stekning yuqori qismidan o'chirilsa, u POP operatsiyasi deb nomlanadi. Har bir pop operatsiyadan keyin stek bittaga kamayadi. Agar stekda hech qanday element qolmasa va pop bajarilsa, bu natijada STACK UNDERFLOW holati kelib chiqadi, bu sizning stekingiz Bo'sh ekanligini anglatadi. POP OPERATION - C funktsiyalari:
    Stekni ko'rib chiqish quyidagicha e'lon qilinadi
    int stack [5], top = -1;
    bekor pop ()
    {
    int element;
    agar (top> = 4)
    {
    item = stack [top];
    top = top - 1;
    printf ("O'chirilgan raqam =% d", element);
    }
    boshqa
    {
    printf ("Yig'ma bo'sh");
    }
    }

Navbatdagi operatsiyalar

Navbatda bajarilishi mumkin bo'lgan asosiy operatsiyalar quyidagilardir:

  1. Enqueue: Elementni navbatga kiritish uchun. C-da operatsion funktsiya:
    Navbat e'lon qilinadi
    int navbat [5], Old = -1 va orqa = -1;
    void add ()
    {
    int element;
    agar (orqa <4)
    {
    printf ("Raqamni kiriting");
    skanerlash ("% d", & element);
    agar (old == -1)
    {
    front = 0;
    orqa = 0;
    }
    boshqa
    {
    orqa = orqa + 1;
    }
    navbat [orqa] = element;
    }
    boshqa
    {
    printf ("Navbat to'la");
    }
    }

  2. Dequeue: Elementni navbatdan o'chirish uchun. C-da operatsion funktsiya:
    Navbat e'lon qilinadi
    int navbat [5], Old = -1 va orqa = -1;
    bekor qilish ()
    {
    int element;
    agar (old! = -1)
    {
    element = navbat [old];
    agar (old == orqa)
    {
    front = -1;
    orqa = -1;
    }
    boshqa
    {
    old = old + 1;
    printf ("O'chirilgan raqam =% d", element);
    }
    }
    boshqa
    {
    printf ("Navbat bo'sh");
    }
    }

Stack dasturlari

  • Kompilyatorda tahlil qilish.

  • Java virtual mashinasi.

  • Matn protsessorida bekor qiling.

  • Veb-brauzerda "Orqaga" tugmasi.

  • Printerlar uchun PostScript tili.

  • Kompilyatorda funktsiya chaqiruvlarini amalga oshirish.

Navbat dasturlari

  • Ma'lumotlar buferlari

  • Asenkron ma'lumotlarni uzatish (fayl IO, quvurlar, rozetkalar).

  • Umumiy manbada (printer, protsessor) so'rovlar ajratish.

  • Yo'l harakati tahlili.

  • Supermarketda bo'lishi kerak bo'lgan kassalar sonini aniqlang.




  1. Yüklə 112,14 Kb.

    Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin