O’zbekiston respublikasi axborot texnologiyasi va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti samarqand filiali




Download 22.89 Kb.
bet1/2
Sana16.12.2023
Hajmi22.89 Kb.
#120167
  1   2
Bog'liq
Rustamov Umid MTA
1-mustaqil ish1, 1-amaliy mashg`uloti Mavzu Informatika fanlarini o`qitishda mua, 9-mavzu kesh xotira vazifalari va darajalari. Asosiy xotira va , 1712048672

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.")



Download 22.89 Kb.
  1   2




Download 22.89 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



O’zbekiston respublikasi axborot texnologiyasi va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti samarqand filiali

Download 22.89 Kb.