File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed
Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 1+ def num_nodes (tree ):
2+ """Counts the number of nodes in a tree.
3+
4+ >>> class Node(object):
5+ ... def __init__(self, data):
6+ ... self.data=data
7+ ... self.children = []
8+ ... def add_child(self, obj):
9+ ... self.children.append(obj)
10+ ...
11+ >>> one = Node(1)
12+ >>> two = Node(2)
13+ >>> three = Node(3)
14+ >>> one.add_child(two)
15+ >>> one.add_child(three)
16+ >>> num_nodes(one)
17+ 3
18+ >>> four = Node(4)
19+ >>> five = Node(5)
20+ >>> two.add_child(four)
21+ >>> two.add_child(five)
22+ >>> num_nodes(one)
23+ 5
24+ >>> six = Node(6)
25+ >>> three.add_child(six)
26+ >>> num_nodes(one)
27+ 6
28+ """
29+
30+ nodes = 1
31+
32+ if tree is None :
33+ return 0
34+
35+ for child in tree .children :
36+ nodes += num_nodes (child )
37+
38+
39+ return nodes
40+
41+
42+
43+ if __name__ == "__main__" :
44+ import doctest
45+ results = doctest .testmod ()
46+
47+ if not results .failed :
48+ print "ALL TESTS PASSED"
You can’t perform that action at this time.
0 commit comments