Stek (inglizcha stack stek; stek o'qiladi) bu lifo tamoyili bo'yicha tashkil etilgan elementlarning ro'yxati bo'lgan mavhum ma'lumotlar turi
Download 39.61 Kb.
|
Стеки в с узб
Введите шесть любых целых чисел:
9 5 2 1 5 6 Верхний элемент стека: 6 Давайте удалим верхний элемент А это новый верхний элемент: 5 Process returned 0 (0x0) execution time : 0.010 s Press any key to continue. Peek () funktsiyasi Stek kutubxonasiga yangi peek () funktsiyasi qo'shildi, u yordamida stekning N elementiga murojaat qilishingiz mumkin (yuqoridan). Shunday qilib, bu funktsiya bilan stack qatorga o'xshay boshlaydi. Quyida biz uchinchi elementni ko'rsatish uchun peek () funktsiyasidan foydalanganmiz:
Ushbu funktsiyadan faqat C ++ 11 va undan yuqori versiyalarida foydalanishimiz mumkin. Peek () funktsiyasidan dasturchilarning kichik doirasi foydalanadi va men darhol aytishim kerakki, bu funktsiya yaratuvchilar undan kutganidek ommalashmagan. Massiv yordamida qanday qilib stek yaratish Ko'plab dasturchilar stack naqshidan foydalanmaydilar, aksincha massivlar orqali stacklarda ishlaydi. Endi biz sizga massiv yordamida stekni qanday amalga oshirishni ko'rsatamiz. Quyida biz 20 ta elementdan iborat - steck nomli qator yaratdik, shuningdek, st ning yuqori elementiga ishora qiluvchi o'zgaruvchini yaratdik. Element qo'shish uchun biz i ni birma-bir oshiramiz va elementni steck [i] katagiga yozamiz. Elementni olib tashlash uchun biz faqatgina i ni kamaytiramiz. Ehtimol, allaqachon taxmin qilganingizdek, stekning yuqori elementiga kirish uchun biz shunchaki qatorning i elementiga murojaat qilamiz. I o'zgaruvchisi push () funktsiyasi va top () funktsiyasini almashtirdi. Stekning bo'shligini bilish uchun biz shunchaki i == -1 holatini tekshiramiz: • Agar rost bo'lsa, u holda stek bo'sh bo'ladi. • Agar u noto'g'ri bo'lsa, unda stekda ba'zi elementlar mavjud. Massiv yordamida to'plamni amalga oshirish quyida keltirilgan:
Foydalanish uchun stack yaratishning usuli Bugun biz stekni amalga oshirishning ikkita usulini ko'rib chiqdik: • C ++ shablonidan foydalanish. • Massivdan foydalanish. Agar siz dasturingizda stekdan foydalanayotgan bo'lsangiz va uni iloji boricha tezroq ishlashini istasangiz, unda stackni amalga oshirishning birinchi usulidan foydalaning. Agar siz dasturning ishlashi haqida qayg'urmasangiz, unda siz massiv orqali stek yaratilishidan foydalanishingiz mumkin. Shaxsan biz har doim stekni amalga oshirishning birinchi usulidan foydalanamiz. Uni ishlatish va reklama qilish tez va oson. Keyingi darsda biz yana bir juda muhim ma'lumotlar tuzilishini - navbatni o'rganamiz. Ushbu ma'lumotlar tuzilishi ko'plab messenjerlarda (masalan, telegramda) foydalaniladi. mashqlar
O'qigan materialingizni o’zlashtirish uchun sizga quyidagilarni maslahat beramiz: 1. Stekni e'lon qiling. 2. Unga istalgan 3 ta elementni qo'shing. 3. Yuqori elementni chiqaring. 4. Yuqori elementni olib tashlang. 5. Yuqori elementni yana torting. Stekni faylga yozish bu erda stackning bir elementi bo'lgan STACK tuzilmasi mavjud, fayllardan stackga elementlarni qo'shishda hech qanday muammo bo'lmaydi, cout yordamida hamma narsani tekshirdim, lekin stack-dan olib tashlashni va stack-dan ma'lumotlar fayliga o'tkazishni amalga oshirishga harakat qilsam, u chiqdi bu aniq emas. va shunga qaramay, kiruvchi oqimni qatorlar qatoriga yozganimda, faylning birinchi elementi yozilmagan
Stek to'plami Stack Stack sinfida elementlarni boshqarishga imkon beradigan ikkita asosiy usul mavjud: • Push: avval stekka element qo'shadi • Pop: birinchi elementni to'plamdan chiqaradi va chiqaradi • Peek: shunchaki birinchi elementni olib tashlamasdan stekdan qaytaradi Keling, bir misolni ko'rib chiqaylik:
using System.Collections.Generic;
namespace Collections { class Program { static void Main(string[] args) {
Stack numbers.Push(3); // в стеке 3 numbers.Push(5); // в стеке 5, 3 numbers.Push(8); // в стеке 8, 5, 3
// так как вверху стека будет находиться число 8, то оно и извлекается int stackElement = numbers.Pop(); // в стеке 5, 3 Console.WriteLine(stackElement);
Stack persons = new Stack (); persons.Push(new Person() { Name = "Tom" }); persons.Push(new Person() { Name = "Bill" }); persons.Push(new Person() { Name = "John" });
foreach (Person p in persons) { Console.WriteLine(p.Name); }
Person person = persons.Pop(); // теперь в стеке Bill, Tom Console.WriteLine(person.Name);
Console.ReadLine(); } }
class Person { public string Name { get; set; } } } Download 39.61 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling