C++ steklar
C++ stek
Stek bir nechta elementni LIFO deb ataladigan muayyan tartibda saqlaydi.
LIFO — Last in, First Out (oxirgi kirgan birinchi chiqadi) degani. LIFO’ni tasavvur qilish uchun quymoqlar taxlamini ko‘z oldingizga keltiring: quymoqlar ham yuqoridan qo‘yiladi, ham yuqoridan olinadi. Shuning uchun quymoqni olganingizda u doim siz eng oxirgi qo‘ygan quymoq bo‘ladi. Informatika va dasturlashda elementlarni bunday tartibda joylashtirish LIFO deb ataladi.
Vektorlardan farqli ravishda stekdagi elementlarga indeks raqamlari orqali murojaat qilinmaydi. Elementlar yuqoridan qo‘shilib, yuqoridan olib tashlangani uchun faqat stekning eng yuqorisidagi elementga murojaat qilish mumkin.
Stekdan foydalanish uchun <stack> sarlavha faylini qo‘shishingiz kerak:
// Include the stack library
#include <stack>
Stek yaratish
Stek yaratish uchun stack kalit so‘zidan foydalaning, burchakli qavslar <> ichida u saqlaydigan qiymatlar tipini, so‘ng stek nomini ko‘rsating, masalan: stack<type>
stackName.
// Create a stack of strings called cars
stack<string> cars;
Eslatma: Stek e’lon qilingandan keyin uning tipini (misolimizda string) o‘zgartirib bo‘lmaydi.
Eslatma: Vektorlardagidan farqli ravishda stekka e’lon qilish paytida element qo‘shib bo‘lmaydi:
stack<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
Element qo‘shish
Stekka element qo‘shish uchun uni e’lon qilgandan keyin .push() funksiyasidan foydalaning:
Misol
// Create a stack of strings called cars
stack<string> cars;
// Add elements to the stack
cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Mazda");
Stek quyidagicha ko‘rinishda bo‘ladi (oxirgi qo‘shilgan element eng yuqoridagi element ekanini unutmang):
Mazda (top element)
Ford
BMW
Volvo
Stek elementlariga murojaat qilish
Massivlar va vektorlardagidek stek elementlariga indeks raqamlari orqali murojaat qilib bo‘lmaydi.
Stekda faqat eng yuqoridagi elementga murojaat qilish mumkin, bu .top() funksiyasi yordamida amalga oshiriladi:
Eng yuqoridagi elementni o‘zgartirish
Eng yuqoridagi element qiymatini o‘zgartirish uchun ham .top funksiyasidan foydalanishingiz mumkin:
Misol
// Change the value of the top element
cars.top() = "Tesla";
// Access the top element
cout << cars.top(); // Now outputs "Tesla" instead of "Mazda"
O‘zingiz sinab ko‘ring »
Elementlarni olib tashlash
Stekdan element olib tashlash uchun .pop() funksiyasidan foydalanishingiz mumkin.
Bu stekka oxirgi qo‘shilgan elementni olib tashlaydi:
Misol
// Create a stack of strings called cars
stack<string> cars;
// Add elements to the stack
cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Mazda");
// Remove the last added element (Mazda)
cars.pop();
// Access the top element (Now Ford)
cout << cars.top();
O‘zingiz sinab ko‘ring »
Stek o‘lchamini aniqlash
Stekda nechta element borligini bilish uchun .size() funksiyasidan foydalaning:
Stek bo‘shligini tekshirish
Stek bo‘sh yoki bo‘sh emasligini aniqlash uchun .empty() funksiyasidan foydalaning.
.empty() funksiyasi stek bo‘sh bo‘lsa
1 (true), aks holda 0 (false) qaytaradi:
Misol
stack<string> cars;
cout << cars.empty(); // Outputs 1 (The stack is empty)
O‘zingiz sinab ko‘ring »
Misol
stack<string> cars;
cars.push("Volvo");
cars.push("BMW");
cars.push("Ford");
cars.push("Mazda");
cout << cars.empty(); // Outputs 0 (not empty)
O‘zingiz sinab ko‘ring »
Steklar va navbatlar
Steklar ko‘pincha navbatlar bilan birga tilga olinadi — bu keyingi sahifada tasvirlangan o‘xshash ma’lumotlar tuzilmasi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
