|
Ma’lumotlar tuzilmasi va algoritmlar” fanidan 2-mustaqil ishi tuzuvchi: Qo’ziboyev Xasanboy
|
bet | 1/4 | Sana | 16.12.2023 | Hajmi | 356,54 Kb. | | #120363 |
Bog'liq Xasanboy MT Maruza
O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND FILIALI
“KOMPYUTER INJINIRINGI” FAKULTETI
“DASTURIY INJNIRINGI” KAFEDRASI
“Ma’lumotlar tuzilmasi va algoritmlar” fanidan
2-MUSTAQIL ISHI
Tuzuvchi:Qo’ziboyev Xasanboy
Fan o‘qituvchisi: Kudratov R.
S a m a r q a n d _ 2023
1-MASALA
1-masala. Stek tuzilmasini massiv yordamida tadbiq qilish dasturini yozing. Ma’ruza mashg’ulotlarida taqdim etilgan stekni tashkil etish va stek ustida bajariladigan amallar uchun metodlarni o’z tarkibida saqlovchi klassdan foydalaning. Shu bilan birgalikda push() va pop() funktsiyalarini yarating va ularni umumiy dasturda stek uchun qo’llang.
Masalan:
Asosiy vazifa:
Sizdan talab qilinadi namunada berilgan klassning ikkita push() va pop() funksiya (metod) larini ishlab chiqish. push() metodi bitta butun sonli argumentga ega, 'x' – stekka yangi element qo’shish uchun, pop() metodi argumentsiz, butun top elementini o’chirish, agar stek bo’sh bo’lsa -1 qiymatini qaytarsin.
Vaqt bo’yicha murakkablik: O (1) - push() va pop().
Qo’shimcha xotira: O (1) - push() va pop().
Cheklovlar:
1 <= Q <= 100
1 <= x <= 100
Masalaning javobi:
class Stack:
def __init__(self):
self.array = []
self.top = -1
self.max = 100
#mening kodim
def isEmpty(self):
return self.top == -1
#mening kodim
def push(self, x):
if self.top < self.max - 1:
self.top += 1
self.array.append(x)
else:
print("Stek to'la. Yangi element qo'shilmadi.")
#mening kodim
def pop(self):
if self.isEmpty():
print(-1)
return -1
else:
qoshilgan_elem = self.array.pop()
self.top -= 1
print(f"{qoshilgan_elem} stekdan o'chirildi.")
return qoshilgan_elem
|
| |