def odhajanje_iz_kroga(imena, n): '''Vrne verižni seznam namesto običajnega''' i = 0 slovar = [] while len(imena) > 0: i = (i + n - 1) % len(imena) slovar.append(imena[i]) del imena[i] return iz_seznama(slovar[::-1])
def test_pomovitev(self): self.assertEqual(st_ponovitev(iz_seznama([5, 2, 7, 1, 4, 1, 5, 3, 7])), { 5: 2, 2: 1, 7: 2, 1: 2, 4: 1, 3: 1 })
def test_pomovitev(self): self.assertEqual( st_ponovitev( iz_seznama([5, 5, 6, 3, 9, 3, -8, 2, 5, 6, 40, 7, 7, 4, 2, 1])), { 5: 3, 6: 2, 3: 2, 9: 1, -8: 1, 2: 2, 40: 1, 7: 2, 4: 1, 1: 1 })
elementi = {} kjesmo = v if kjesmo == None: return elementi while kjesmo != None: if kjesmo.podatek in elementi: elementi[kjesmo.podatek] += 1 else: elementi[kjesmo.podatek] = 1 kjesmo = kjesmo.naslednji return elementi #Testi: veriga0 = iz_seznama([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 22]) veriga1 = iz_seznama([1, 2, 3, 2, 5, 6, 7, 2, 9, 10, 22]) veriga2 = iz_seznama([1, 2, 33, 4, 5, 33, -20, 0, 0]) veriga3 = iz_seznama([]) veriga4 = iz_seznama( ['asd', -10, 0, None, None, True, False, False, 'asd', '123', 123]) #dogovor, 0 in False štejemo skupaj veriga5 = None vozli = [veriga0, veriga1, veriga2, veriga3, veriga4, veriga5] seznam = [{ 1: 1, 2: 1, 3: 1, 4: 1, 5: 1,
def pojavitve(prvi): '''za vsak element verige vrne število njegovih pojavitev''' slovar = dict() while prvi is not None: if prvi.podatek not in slovar.keys(): slovar[prvi.podatek] = 1 # dodamo podatek kot kljuc v slovar else: # ce pa je ta kljuc ze v slovarju, mu povecamo vrednost slovar[prvi.podatek] += 1 prvi = prvi.naslednji return slovar ##Testni primeri: seznam1 = [1, 2, 3, 1] veriga1 = iz_seznama(seznam1) #print(veriga1) #print(pojavitve(veriga1)) #print('resitev') #print('True') seznam2 = [1, 2, 2, 3, 1] veriga2 = iz_seznama(seznam2) #print(veriga2) #print(pojavitve(veriga2)) seznam3 = [1, 2, 2, 3, 5, 6, 3, 1] veriga3 = iz_seznama(seznam3) #print(veriga3) #print(pojavitve(veriga3))
def test_ponovitev(self): self.assertEqual(st_ponovitev(iz_seznama([5])), {5: 1})
def podvoji_verigo(prvi): """vrne novo identicno kopijo verige, pri tem stare ne spremeni""" return iz_seznama(vrni_seznam(prvi))
def stevilska_veriga(a, b): """Vrne referenco na prvi vozel v verigi, ki zaporedoma vsebuje stevila med a in b""" return iz_seznama([i for i in range(a, b + 1)])