class Prvek: pocet = 0 def __init__(self, x, dalsi): self.x = x self.dalsi = dalsi Prvek.pocet += 1 class LSS: def __init__(self): self.prvni = None self.posledni = None # ? budeme to potrebovat?? def Vytiskni(self): print(f"Celkovy pocet vytvorenych Prvku: {Prvek.pocet}") p = self.prvni while p is not None: print(p.x) p = p.dalsi print("---a to je vsechno---") def PridejPrvekNaZacatek(self, x): p = Prvek(x, self.prvni) if self.prvni is None: self.posledni = p self.prvni = p def VymazPrvniPrvek(self): assert self.prvni is not None, "CHYBA" self.prvni = self.prvni.dalsi if self.prvni is None: self.posledni = None # ? budeme to potrebovat?? def PridejPrvekNaKonec(self, x): p = Prvek(x, None) if self.prvni is None: self.prvni = p self.posledni = p else: self.posledni.dalsi = p self.posledni = p def VymazPosledniPrvek(self): assert seznam.prvni is not None, "Mazu z prazdneho seznamu, fuj!" if self.prvni.dalsi is None: # jednoprvkovy seznam self.VymazPrvniPrvek() else: p = seznam.prvni while p.dalsi.dalsi is not None: p = p.dalsi p.dalsi = None self.posledni = p seznam = LSS() seznam.PridejPrvekNaKonec(1) seznam.Vytiskni() seznam.PridejPrvekNaKonec(2) seznam.Vytiskni() seznam.PridejPrvekNaKonec(3) seznam.Vytiskni() seznam.VymazPosledniPrvek() seznam.Vytiskni() seznam.VymazPosledniPrvek() seznam.Vytiskni() seznam.VymazPosledniPrvek() seznam.Vytiskni() seznam.VymazPosledniPrvek() seznam.Vytiskni() """ seznam.Vytiskni() for i in range(20): seznam.PridejPrvekNaZacatek(i) seznam.Vytiskni() """ seznam.PridejPrvekNaZacatek(3) seznam.PridejPrvekNaZacatek(2) seznam.PridejPrvekNaZacatek(1) seznam.Vytiskni() """ seznam.VymazPrvniPrvek() seznam.Vytiskni() seznam.VymazPrvniPrvek() seznam.Vytiskni() seznam.VymazPrvniPrvek() seznam.Vytiskni() seznam.VymazPrvniPrvek() seznam.Vytiskni() """ seznam = LSS() seznam.PridejPrvekNaKonec(3) seznam.Vytiskni() seznam.PridejPrvekNaKonec(2) seznam.Vytiskni() seznam.PridejPrvekNaKonec(1) seznam.Vytiskni()