Sobes.tech
Junior — Middle

Ar galite paaiškinti, kas yra vienkryptė sąrašas ir kaip jis įgyvendinamas Python?

sobes.tech AI

Atsakymas iš AI

Vienpusis susietas sąrašas yra duomenų struktūra, sudaryta iš mazgų, kur kiekvienas mazgas turi duomenis ir nuorodą į kitą sąrašo mazgą. Skirtingai nuo masyvo, elementai nėra saugomi nuoseklioje atminties srityje, tai leidžia efektyviai įterpti ir ištrinti elementus.

Python pavyzdys, kaip įgyvendinti vienpusiškai susietą sąrašą:

class Mazgas:
    def __init__(self, duomenys):
        self.duomenys = duomenys
        self.kitas = None

class VienpusisSusietasSarasas:
    def __init__(self):
        self.pradžia = None

    def pridėti(self, duomenys):
        naujas_mazgas = Mazgas(duomenys)
        if not self.pradžia:
            self.pradžia = naujas_mazgas
            return
        dabartinis = self.pradžia
        while dabartinis.kitas:
            dabartinis = dabartinis.kitas
        dabartinis.kitas = naujas_mazgas

    def išvesti_sąrašą(self):
        dabartinis = self.pradžia
        while dabartinis:
            print(dabartinis.duomenys, end=' -> ')
            dabartinis = dabartinis.kitas
        print('None')

# Naudojimas
sls = VienpusisSusietasSarasas()
sls.pridėti(1)
sls.pridėti(2)
sls.pridėti(3)
sls.išvesti_sąrašą()  # Išvestis: 1 -> 2 -> 3 -> None