Tehtäväsi on toteuttaa luokka, jonka avulla pystyy lisäämään kaaren verkkoon sekä laskemaan, montako erilaista virittävää puuta verkolle voidaan muodostaa.
Voit olettaa, että verkossa on enintään 5 solmua ja siihen lisätään enintään 10 kaarta. Jokainen kaari on suuntaamaton ja verkossa ei ole kahta samanlaista kaarta.
Python
Toteuta tiedostoon alltrees.py luokka AllTrees, jossa on seuraavat metodit:
- konstruktori, jolle annetaan solmujen määrä
add_edgelisää verkkoon kaarencountilmoittaa virittävien puiden määrän
class AllTrees:
def __init__(self,n):
# TODO
def add_edge(self,a,b):
# TODO
def count(self):
# TODO
if __name__ == "__main__":
a = AllTrees(3)
a.add_edge(1,2)
print(a.count()) # 0
a.add_edge(1,3)
print(a.count()) # 1
a.add_edge(2,3)
print(a.count()) # 3
Java
Toteuta tiedostoon AllTrees.java luokka AllTrees, jossa on seuraavat metodit:
- konstruktori, jolle annetaan solmujen määrä
addEdgelisää verkkoon kaarencountilmoittaa virittävien puiden määrän
public class AllTrees {
public AllTrees(int n) {
// TODO
}
public void addEdge(int a, int b) {
// TODO
}
public int count() {
// TODO
}
public static void main(String[] args) {
AllTrees a = new AllTrees(3);
a.addEdge(1,2);
System.out.println(a.count()); // 0
a.addEdge(1,3);
System.out.println(a.count()); // 1
a.addEdge(2,3);
System.out.println(a.count()); // 3
}
}
