Ma’lumotlar tuzilmasi Data structures


StackTop(S) Stekni o’chirish: Remove (S)



Download 390,2 Kb.
bet4/4
Sana20.01.2022
Hajmi390,2 Kb.
#392954
1   2   3   4
Bog'liq
Stek va navbatlar. Ularni mantiqiy tasvirlash va ustida amallar bajarish algoritmlari

StackTop(S)

  • Stekni o’chirish:
  • Remove (S)

  • Stekning to’liqligini tekshirish:
  • Full(S)

    Stekdagi asosiy algoritmlar

    Faraz qilaylik, stek bir o’lchamli massiv ko’rinishida ifodalangan bo’lib uning uzunligi max_st ga teng bo’lsin, ya’ni stack[max_st]. Bu yerda t – stek uchi, x esa biror turga tegishli element.

    void Push(int t, BT x) {

    if (t= =max_st) exit(1);

    stack[t]=x;

    t++; }

    void Empty(int t) {

    if (t= =0) p=1;

    else p=2; }

    void Remove(int t) {

    if (t= =0) exit(1);

    t--; }

    Stekdagi asosiy amallar

    • Stekga element qo’shish:
    • Push(S,i) –, bu yerda S – stek nomi, i - stekga kiritiladigan element;

    • Stekdan element tanlab olish:
    • Pop(S)

    • Stekni bo’sh yoki bo’sh emasligini tekshirish:
    • Empty(S) – (natija: true - bo’sh, false – bo’sh emas);

    • Stekdan elementni tanlovsiz o’qish:
    • StackTop(S)

    • Stekdan elementni o’chirish:
    • Remove (S)

    • Stekning to’liqligini tekshirish:
    • Full(S)

    STEK (LIFO) tuzilmasiga misol

    • #include
    • #include
    • using namespace std;
    • void showstack(stack s) {
    • while (!s.empty()) {
    • cout << '\t' << s.top();
    • s.pop(); }
    • cout << '\n'; }
    • int main () {
    • stack s;
    • s.push(10);
    • s.push(30);
    • s.push(20);
    • s.push(5);
    • s.push(1);
    • cout << "STEK tuzilmasi elementlari : ";
    • showstack(s);
    • cout << "\nSTEK uzunligi: " << s.size();
    • cout << "\nSTEK pop elementi : " << s.top();
    • cout << "\nSTEKNING qolgan elementlari : ";
    • s.pop();
    • showstack(s);
    • return 0;
    • }

    STEK tuzilmasi ustida bajariladigan asosiy amallar:

    • push – STEK ga element qo’shish
    • pop – STEKdan elementni chiqarib olish yoki o’chirish
    • peek – STEK ning oxirgi elementini o’chirmasdan o’qish
    • isFull – STEK ni to’liqlikka tekshirish
    • isEmpty – STEKni bo’shliqqa tekshirish

    STEK ni massiv orqali tavsiflash

    • #include
    • using namespace std;
    • #define MAX 1000 //STEK uchun MAX uzunlik
    • class Stack {
    • int top;
    • public:
    • int myStack[MAX]; //massiv STEKI
    • Stack() { top = -1; }
    • bool push(int x);
    • int pop();
    • bool isEmpty(); }; //STEKka element qo'shish
    • bool Stack::push(int item) {
    • if (top >= (MAX-1)) {
    • cout << "STEK to\'ldi!!!";
    • return false; }
    • else { myStack[++top] = item;
    • cout<
    • return true; } }
    • //STEKdan elementni chiqarish yoki o'chirish
    • int Stack::pop() {
    • if (top < 0) {
    • cout << "STEK !!";
    • return 0; }
    • else { int item = myStack[top--];
    • return item; } }
    • //STEKni bo'shliqqa tekshirish
    • bool Stack::isEmpty() {
    • return (top < 0); }
    • // STEK funksiyasi
    • int main() {
    • class Stack stack;
    • cout<<"STEK ga elementlar qo'shish "<
    • stack.push(2);
    • stack.push(4);
    • stack.push(6);
    • cout<<"STEK elementlari : "<
    • while(!stack.isEmpty()) {
    • cout<
    • return 0; }

    STEKni ro’yxat yordamida tavsiflash

    • #include
    • using namespace std;
    • class StackNode {
    • public:
    • int data;
    • StackNode* next; };
    • StackNode* newNode(int data) {
    • StackNode* stackNode = new StackNode();
    • stackNode->data = data;
    • stackNode->next = NULL;
    • return stackNode; }
    • int isEmpty(StackNode *root) { return !root; }
    • void push(StackNode** root, int new_data){
    • StackNode* stackNode = newNode(new_data);
    • stackNode->next = *root;
    • *root = stackNode;
    • cout<
    • int pop(StackNode** root){
    • if (isEmpty(*root))
    • return -1;
    • StackNode* temp = *root;
    • *root = (*root)->next;
    • int popped = temp->data; //free(temp);
    • return popped; }
    • int peek(StackNode* root) { if (isEmpty(root))
    • return -1;
    • return root->data; }
    • int main() {
    • StackNode* root = NULL;
    • cout<<"STEKga qo\'shish (Push): "<
    • push(&root, 100);
    • push(&root, 200);
    • push(&root, 300);
    • cout<<"\nSTEKning Top elementi: "<
    • cout<<"\nSTEK elementlari:"<
    • while(!isEmpty(root)){
    • cout<
    • return 0; }

    Navbatning turlari

    • Navbatning yana bir turi bu dekdir.
    • Dek (DEQ - Double Ended Queue) - ikkita chetli navbat.
    • Dekning o’ziga xos xususiyati shundan iboratki, elementlarni yozish va o’qishni har ikkala chetidan xam amalga oshirish mumkin.
    • Dekni quyi chegaralari birlashtirilgan ikkita stek ko’rinishda qarash mumkin.
    • Barcha turdagi navbatlarni foydalanuvchi dasturlarida massiv yoki bir bog’lamli (oshkor) ro’yxatlar ko’rinishida tasvirlash qulay va tushunarli.

    Dek ustida bajariladigan amallar

    • Insert – element qo’yish.
    • Remove – dekdan elementni chiqarib tashlash.
    • Empty – bo’sh yoki bo’sh emasligini tekshirish.
    • Full – to’lalikka tekshirish.

    Dek ustida bajariladigan amallar

    • extend(iterable) :- Bu funksiya deque ning o'ng uchiga bir nechta qiymatlarni qo'shish uchun ishlatiladi. O'tkazilgan argument iterativdir.  
    • extendleft(iterable) :- Bu funksiya dequening chap uchiga bir nechta qiymatlarni qo'shish uchun ishlatiladi. O'tkazilgan argument iterativdir. Chap qo'shimchalar natijasida tartib o'zgartiriladi .  
    • reverse() :- Bu funksiya deque elementlarning tartibini teskari o'zgartirish uchun ishlatiladi .  
    • rotate() :- Bu funksiya dequeni argumentlarda ko'rsatilgan raqamga aylantiradiBelgilangan raqam manfiy bo'lsa, aylanish chapga sodir bo'ladi. Aks holda aylanish o'ngga.  

    Mavzu bo’yicha nazorat savolari

    • Ro’yxat deb nimaga aytiladi?
    • Ro’yxat turlarini aytib o’ting.
    • Navbat bilan stek qanday ma’lumotlar tuzilmasiga kiradi?
    • Stekdan elementni tanlash qanday amalga oshiriladi?
    • Qanday xizmat ko’rsatish turiga FIFO, qaysi biriga LIFO deb ataladi?
    • Navbat turlarini keltirib o’ting.
    • Dekning o’ziga xosligi nimadan iborat?

    Adabiyotlar

    • Алфред В. Ахо., Джон Э. Хопкрофт, Джефри Д. Ульман. Структура данных и алгоритмы. //Учеб.пос., М.: Изд.дом: "Вильямс", 2000, — 384 с.
    • Adam Drozdek. Data structures and algorithms in C++. Fourth edition. Cengage Learning, 2013.
    • Бакнелл Джулиан М. Фундаментальные алгоритмы и структуры данных в Delphi//СПб: ООО «ДиаСофтЮП», 2003. 560с.
    • Narzullaev U.X., Qarshiev A.B., Boynazarov I.M. Ma’lumotlar tuzilmasi va algoritmlar. //O’quv qo’llanma. Toshkent: Tafakkur nashriyoti, 2013 y. – 192 b.
    • Лойко В.И. Структуры и алгоритмы обработки данных. Учебное пособие для вузов. - Краснодар: КубГАУ. 2000. - 261 с., ил.

    Mustaqil ishlash uchun topshiriqlar:

    • Statik va yarimstatik tuzilmalar ustida bajariladigan amallarni o’rganish
    • Izoh: dars mashg’ulotida berilgan bilimlarga qo’shimcha ma’lumotlarni to’plash-konspekt qilish

    Download 390,2 Kb.

    Do'stlaringiz bilan baham:
    1   2   3   4




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
    ma'muriyatiga murojaat qiling

    kiriting | ro'yxatdan o'tish
        Bosh sahifa
    юртда тантана
    Боғда битган
    Бугун юртда
    Эшитганлар жилманглар
    Эшитмадим деманглар
    битган бодомлар
    Yangiariq tumani
    qitish marakazi
    Raqamli texnologiyalar
    ilishida muhokamadan
    tasdiqqa tavsiya
    tavsiya etilgan
    iqtisodiyot kafedrasi
    steiermarkischen landesregierung
    asarlaringizni yuboring
    o'zingizning asarlaringizni
    Iltimos faqat
    faqat o'zingizning
    steierm rkischen
    landesregierung fachabteilung
    rkischen landesregierung
    hamshira loyihasi
    loyihasi mavsum
    faolyatining oqibatlari
    asosiy adabiyotlar
    fakulteti ahborot
    ahborot havfsizligi
    havfsizligi kafedrasi
    fanidan bo’yicha
    fakulteti iqtisodiyot
    boshqaruv fakulteti
    chiqarishda boshqaruv
    ishlab chiqarishda
    iqtisodiyot fakultet
    multiservis tarmoqlari
    fanidan asosiy
    Uzbek fanidan
    mavzulari potok
    asosidagi multiservis
    'aliyyil a'ziym
    billahil 'aliyyil
    illaa billahil
    quvvata illaa
    falah' deganida
    Kompyuter savodxonligi
    bo’yicha mustaqil
    'alal falah'
    Hayya 'alal
    'alas soloh
    Hayya 'alas
    mavsum boyicha


    yuklab olish