def loeFailist(fnimi): f=open(fnimi, "r") m=f.readlines() f.close() linnad={} seisund=1 #seoste lugemine, 2 alglinna lugemine for rida in m: sonad=rida.split() if len(sonad)==0: seisund=2 #tyhi rida if seisund==1: linnad[sonad[0]]=sonad[1:] if seisund==2 and len(sonad)==1: algLinn=sonad[0] return linnad, algLinn def leiaSeotudLinnad(linnad, algLinn): uuritudLinnad=[] #pole enam põhjust analüüsida leitudLinnad=[algLinn] #teada, et olemas, aga edasiteed vaatamata tagasitee={algLinn: algLinn} while leitudLinnad: uuritavLinn=leitudLinnad.pop() for linn in linnad[uuritavLinn]: if linn not in uuritudLinnad+leitudLinnad: leitudLinnad.append(linn) tagasitee[linn]=uuritavLinn uuritudLinnad.append(uuritavLinn) uuritudLinnad.remove(algLinn) return uuritudLinnad, tagasitee def trykiTeekonnad(uuritudLinnad, tagasitee): for uuritav in uuritudLinnad: while tagasitee[uuritav]!=uuritav and tagasitee[uuritav]!="": print(uuritav, end=" - ") uuritav=tagasitee[uuritav] print(uuritav) a, b=loeFailist("sisend1.txt") c, d=leiaSeotudLinnad(a, b) trykiTeekonnad(c, d)