Binääripuusta poistetaan joka askeleella jokin lehti, kunnes puu on tyhjä. Monellako tavalla poistot voi toteuttaa?
Tarkastellaan esimerkkinä tehtäväpohjassa olevaa puuta:
Voit olettaa, että puussa on korkeintaan 100 solmua ja että vastaus on aina korkeintaan 10^{18}.
Python
Toteuta tiedostoon cleartree.py
funktio count(root)
, joka antaa poistotapojen määrän.
from collections import namedtuple def count(node): # TODO if __name__ == "__main__": Node = namedtuple("Node",["left","right"]) tree = Node(Node(None,None),Node(Node(None,None),Node(None,None))) print(count(tree)) # 8
Java
Toteuta tiedostoon ClearTree.java
metodi count
, joka antaa poistotapojen määrän.
public class ClearTree { public long count(Node node) { // TODO } public static void main(String[] args) { ClearTree c = new ClearTree(); Node tree = new Node(new Node(null,null), new Node(new Node(null,null), new Node(null,null))); System.out.println(c.count(tree)); // 8 } }