Tehtäväsi on toteuttaa luokka, jonka avulla pystyy lisäämään kaaren suunnattuun verkkoon sekä tutkimaan, onko verkossa suunnattua sykliä.
Voit olettaa, että solmuja on enintään 50 ja luokan metodeita kutsutaan enintään 100 kertaa.
Python
Toteuta tiedostoon cycles.py luokka Cycles, jossa on seuraavat metodit:
- konstruktori, jolle annetaan solmujen määrä
add_edgelisää kaaren solmusta a solmuun bchecktarkastaa, onko verkossa suunnattua sykliä
class Cycles:
def __init__(self,n):
# TODO
def add_edge(self,a,b):
# TODO
def check(self):
# TODO
if __name__ == "__main__":
c = Cycles(4)
c.add_edge(1,2)
c.add_edge(2,3)
c.add_edge(1,3)
c.add_edge(3,4)
print(c.check()) # False
c.add_edge(4,2)
print(c.check()) # True
Java
Toteuta tiedostoon Cycles.java luokka Cycles, jossa on seuraavat metodit:
- konstruktori, jolle annetaan solmujen määrä
addEdgelisää kaaren solmusta a solmuun bchecktarkastaa, onko verkossa suunnattua sykliä
public class Cycles {
public Cycles(int n) {
// TODO
}
public void addEdge(int a, int b) {
// TODO
}
public boolean check() {
// TODO
}
public static void main(String[] args) {
Cycles c = new Cycles(4);
c.addEdge(1,2);
c.addEdge(2,3);
c.addEdge(1,3);
c.addEdge(3,4);
System.out.println(c.check()); // false
c.addEdge(4,2);
System.out.println(c.check()); // true
}
}
