if T.root is EmptyValue:
        return 0
    else:
        count = 1
        for tree in T.subtrees:
            count += size(tree)
        return count






a = Tree(1)
b = Tree(2)
c = Tree(3)

d = Tree(4)
e = Tree(5)

f = Tree(6)
g = Tree(7)

h = Tree(8)

g.subtrees= [h]
c.subtrees = [f,g]
b.subtrees = [d,e]
a.subtrees = [b,c]

print(depth_greater(a,2))
__author__ = 'Udara'
from tree import Tree,EmptyValue

def internal_nodes(T):
    if T.root is EmptyValue:
        return 0
    #can't use T.subtrees is [] here.
    #can't use T.subtrees is [] here.
    elif T.subtrees == []:
        return 0
    else:
        count = 1
        for trees in T.subtrees:
            count += internal_nodes(trees)
        return count




a = Tree(1)
b = Tree(2)
c = Tree(3)

d = Tree(4)
e = Tree(5)

b.subtrees = [d,e]
a.subtrees = [b,c]

print(internal_nodes(a))
        return count
    else:
        seen.append(T.root)
        count = 0
        for tree in T.subtrees:
            count += count_dups1(tree,seen)
        return count



a = Tree(1)
b = Tree(2)
c = Tree(3)

d = Tree(4)
e = Tree(5)

f = Tree(6)
g = Tree(7)

h = Tree(8)

i = Tree(8)
g.subtrees= [h,i]
c.subtrees = [f,g]
b.subtrees = [d,e]
a.subtrees = [b,c]

print(count_dups(a))#1
print(count_dups(b))#0
        for tree in T.subtrees:
            count += count_even(tree)
        return count
    else:
        count = 0
        for tree in T.subtrees:
            count += count_even(tree)
        return count


a = Tree(1)
b = Tree(2)
c = Tree(3)

d = Tree(4)
e = Tree(5)

f = Tree(6)
g = Tree(7)

h = Tree(8)

i = Tree(8)

g.subtrees= [h,i]
c.subtrees = [f,g]
b.subtrees = [d,e]
a.subtrees = [b,c]

print(count_even(a))#5
print(count_even(b))#2
Beispiel #5
0
 def test_has_extra_not_equal(self):
     tree2 = Tree(1)
     tree2.subtrees = [Tree('Hi'), Tree(3)]
     tree2.subtrees[0].subtrees = [Tree(2)]
     self.assertFalse(self.tree == tree2)
    assumes proper D that isn't too big or anything

    """
    if d == 0:
        return 1
    else:
        count= 0
        for trees in T.subtrees:
            count += depth(T,d-1)
        return count





a = Tree(1)
b = Tree(2)
c = Tree(3)

d = Tree(4)
e = Tree(5)

f = Tree(6)
g = Tree(7)

c.subtrees = [f,g]
b.subtrees = [d,e]
a.subtrees = [b,c]

print(depth(a,1))#2
print(depth(a,2))#4
Beispiel #7
0
 def test_order_matters(self):
     tree2 = Tree(1)
     tree2.subtrees = [Tree(3), Tree('Hi')]
     self.assertFalse(self.tree == tree2)
Beispiel #8
0
 def test_missing_item_not_equal(self):
     tree2 = Tree(1)
     tree2.subtrees = [Tree(3)]
     self.assertFalse(self.tree == tree2)
Beispiel #9
0
 def test_simple_eq(self):
     tree2 = Tree(1)
     tree2.subtrees = [Tree('Hi'), Tree(3)]
     self.assertTrue(self.tree == tree2)
Beispiel #10
0
 def test_has_extra_not_equal(self):
     tree2 = Tree(1)
     tree2.subtrees = [Tree('Hi'), Tree(3)]
     tree2.subtrees[0].subtrees = [Tree(2)]
     self.assertFalse(self.tree == tree2)
Beispiel #11
0
 def test_missing_item_not_equal(self):
     tree2 = Tree(1)
     tree2.subtrees = [Tree(3)]
     self.assertFalse(self.tree == tree2)
Beispiel #12
0
 def test_order_matters(self):
     tree2 = Tree(1)
     tree2.subtrees = [Tree(3), Tree('Hi')]
     self.assertFalse(self.tree == tree2)
Beispiel #13
0
 def test_simple_eq(self):
     tree2 = Tree(1)
     tree2.subtrees = [Tree('Hi'), Tree(3)]
     self.assertTrue(self.tree == tree2)