|
O’zbekiston respublikasi axborot texnologiyasi va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti samarqand filiali
|
bet | 1/2 | Sana | 16.12.2023 | Hajmi | 22,89 Kb. | | #120167 |
Bog'liq Rustamov Umid MTA
O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYASI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI SAMARQAND FILIALI
“Kompyuter injiniring” fakulteti
DI22-11 guruh talabasi
Rustamov Umidjonning “Ma’lumotlar tuzilmasi va algoritm”i
fanidan bajargan 2-mustaliq topshirig’i.
Tekshirdi: Boynazarov.I.M
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:
Input: Output: Izoh
1 push(2)
push(3)
pop()
push(4)
2, 4 push(2) stack = {2}
push(3) stack = {2 3}
pop() oxirgi element {3} stackdan chiqariladi stack = {2}
push(4) stack = {2 4}
2 pop()
push(4)
push(5)
pop()
-1, 5 pop() stack = {-1} – top element yo’q, yoki stek bo’sh
push(4) stack = {-1, 4}
push(5) stack = {-1, 4, 5}
pop() stack = {-1, 4}
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
Javobi:(Pythonda)
class Stek:
def __init__(self):
self.items = []
def bosh(self):
return len(self.items) == 0
def qo'shish(self, element):
self.items.append(element)
def olish(self):
if not self.bosh():
return self.items.pop()
else:
return None
def uzunlik(self):
return len(self.items)
# Umumiy dastur
if __name__ == "__main__":
stek = Stek()
# Push va pop amallarini test qilish
stek.qo'shish(1)
stek.qo'shish(2)
stek.qo'shish(3)
print("Stekdan olingan elementlar:")
while not stek.bosh():
print(stek.olish())
print("Stek hozir bo'sh.")
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
O’zbekiston respublikasi axborot texnologiyasi va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti samarqand filiali
|