linnad={} tagasiTeed={} tulbalaius=8 def loeLinnad(): for rida in open("teed1.txt", "r"): m=rida.strip().split() linnad[m[0]]=m[1:] def trykiTabel(): for veerulinn in ["algus"]+list(linnad.keys()): print(veerulinn.ljust(tulbalaius), end="") print() for realinn in linnad: print(realinn.ljust(tulbalaius), end="") for veerulinn in linnad: if(realinn in tagasiTeed and veerulinn in tagasiTeed[realinn]): print((tagasiTeed[realinn][veerulinn]).ljust(tulbalaius), end="") else: print("-".ljust(tulbalaius), end="") print() def leiaTagasitee(kuhu): leitudLinnad=[kuhu] uuritudLinnad=[] tagasiTee={} while leitudLinnad: uuritav=leitudLinnad.pop() for uusLeitud in linnad[uuritav]: if uusLeitud not in (leitudLinnad+uuritudLinnad): leitudLinnad.append(uusLeitud) tagasiTee[uusLeitud]=uuritav uuritudLinnad.append(uuritav) return tagasiTee def leiaTagasiteed(): for linn in linnad: tagasiTeed[linn]=leiaTagasitee(linn) loeLinnad() leiaTagasiteed() trykiTabel() #Kui pole võimalik veeruga näidatud linnas minna vastava rea linna, siis #trükkige tabelisse x, kui ollakse juba kohal, trükkige k #muul juhul näidatakse endiselt esimese vahepeatuse asukohta