Bittimaassa on n lentokenttää, joiden välillä ei ole vielä yhteyksiä. Tehtäväsi on toteuttaa luokka, jonka avulla pystyy lisäämään yksisuuntaisen lentoyhteyden kahden lentokentän välille sekä selvittämään, onko jokaiselta lentokentältä mahdollista lentää mille tahansa toiselle lentokentälle (mahdollisesti välilaskujen kautta).
Voit olettaa, että lentokenttiä on enintään 50 ja luokan metodeita kutsutaan enintään 100 kertaa.
Python
Toteuta tiedostoon airports.py
luokka Airports
, jossa on seuraavat metodit:
- konstruktori, jolle annetaan lentokenttien määrä
add_link
lisää yhteyden lentokentältä a lentokentälle bcheck
tutkii, voiko jokaiselta lentokentältä saavuttaa kaikki muut lentokentät
class Airports: def __init__(self,n): # TODO def add_link(self,a,b): # TODO def check(self): # TODO if __name__ == "__main__": a = Airports(5) a.add_link(1,2) a.add_link(2,3) a.add_link(1,3) a.add_link(4,5) print(a.check()) # False a.add_link(3,5) a.add_link(1,4) print(a.check()) # False a.add_link(5,1) print(a.check()) # True
Java
Toteuta tiedostoon Airports.java
luokka Airports
, jossa on seuraavat metodit:
- konstruktori, jolle annetaan lentokenttien määrä
addLink
lisää yhteyden lentokentältä a lentokentälle bcheck
tutkii, voiko jokaiselta lentokentältä saavuttaa kaikki muut lentokentät
public class Airports { public Airports(int n) { // TODO } public void addLink(int a, int b) { // TODO } public boolean check() { // TODO } public static void main(String[] args) { Airports a = new Airports(5); a.addLink(1,2); a.addLink(2,3); a.addLink(1,3); a.addLink(4,5); System.out.println(a.check()); // false a.addLink(3,5); a.addLink(1,4); System.out.println(a.check()); // false a.addLink(5,1); System.out.println(a.check()); // true } }