class Ring: def __init__(self): self._topp = None def leggTil(self, beholder): if self._topp is None: # dersom ringen er tom self._topp = beholder beholder.neste = beholder else: # dersom ringen har innhold beholder.neste = self._topp siste = self._finnSiste() siste.neste = beholder self._topp = beholder def fjern(self): if self._topp is None: print('Ringen er tom, kan ikke fjerne!') elif self._topp.neste is self._topp: # dersom ringen kun har ett element self._topp = None else: # dersom ringen har mer enn ett element siste = self._finnSiste() siste.neste = self._topp.neste self._topp = self._topp.neste def roterMedKlokka(self): self._topp = self._finnSiste() def roterMotKlokka(self): self._topp = self._topp.neste def _finnSiste(self): gjeldnede = self._topp.neste forrige = self._topp while gjeldnede is not self._topp: forrige = gjeldnede gjeldnede = gjeldnede.neste return forrige def giTopp(self): return self._topp def skrivRing(self): if self._topp is None: print('Ringen er tom!') else: gjeldende = self._topp ikkeFerdig = True while ikkeFerdig: print(gjeldende.innhold, end=' -> ') gjeldende = gjeldende.neste if gjeldende is self._topp: ikkeFerdig = False print(gjeldende.innhold)