class Vozel:
    """
    Osnovni sestavni del verige vozlov.
    """

    def __init__(self, podatek, naslednji=None):
        self.podatek = podatek
        self.naslednji = naslednji

    def __str__(self):
        if self.naslednji is not None:
            return '{} -> {}'.format(self.podatek, self.naslednji)
        else:
            return '{} -> X'.format(self.podatek)

def vrni_seznam(prvi):
    """
    Vrni seznam s podatki, ki so shranjeni v vozlih.
    """
    seznam_podatkov = []
    vozel = prvi
    while vozel is not None:
        seznam_podatkov.append(vozel.podatek)
        vozel = vozel.naslednji
    return seznam_podatkov

def dodaj_na_zacetek(prvi, x):
    """
    Dodaj nov vozel na začetek verižnega seznama.
    """
    return Vozel(x, prvi)

def dodaj_na_konec(prvi, x):
    """
    Dodaj nov vozel na konec verižnega seznama.
    """
    if prvi is None:
        return Vozel(x)
    vozel = prvi
    while vozel.naslednji is not None:
        vozel = vozel.naslednji
    vozel.naslednji = Vozel(x)
    return prvi

def iz_seznama(sez):
    """
    Vrni verižni seznam, ki bo imel kot podatke elemente seznama sez.
    """
    prvi = None
    for elt in reversed(sez):
        prvi = dodaj_na_zacetek(prvi, elt)
    return prvi
