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