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_edge
lisää verkkoon kaarencount
ilmoittaa 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ä
addEdge
lisää verkkoon kaarencount
ilmoittaa 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 } }