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