コード例 #1
0
            countOdd += treeCountOddGE(node,start)
            countOdd += treeCountOddLE(node,end)
        return countOdd

#main function
if len(sys.argv) == 3:
    #initialize an empty binary tree
    tree = BinarySearchTree()
    #variable used to store the end result
    result = ""
    #open the file containing the values to be adde to the BinarySearchTree
    dataFile = open(sys.argv[1], 'r')
    #add all of the values from the file to the tree
    for line in dataFile:
        node = TreeNode(int(line))
        tree.insert(node,tree.locateParentUpdateSize(node))
    #open the file containing the ranges to check
    dataRanges = open(sys.argv[2],'r')
    #iterate through each line of the file
    for line in dataRanges:
        #get the starting and ending values of the range
        i = 0
        start = ""
        end = ""
        while(line[i] != ' '):
            start += line[i]
            i+=1       
        start = int(start)
        while(line[i] != '\n'):
            i+=1
            end += line[i]
コード例 #2
0
from RedBlackTree import RedBlackTree
from RedBlackLeafNode import BlackLeafNode
from RedBlackNode import RedBlackNode
from BinarySearchTree import BinarySearchTree
from TreeNode import TreeNode
from evenSumRange import treeCountOddInRange
from balancedEvenSumRange import treeCountOddInRangeBalanced
t2 = BinarySearchTree()
t = RedBlackTree()

n2 = TreeNode(17)
t2.insert(n2, t2.locateParentUpdateSize(n2))
n1 = RedBlackNode(17)
t.insert(n1, t.locateParentUpdateSize(n1))

n2 = TreeNode(54)
t2.insert(n2, t2.locateParentUpdateSize(n2))
n1 = RedBlackNode(54)
t.insert(n1, t.locateParentUpdateSize(n1))

n2 = TreeNode(12)
t2.insert(n2, t2.locateParentUpdateSize(n2))
n1 = RedBlackNode(12)
t.insert(n1, t.locateParentUpdateSize(n1))

n2 = TreeNode(60)
t2.insert(n2, t2.locateParentUpdateSize(n2))
n1 = RedBlackNode(60)
t.insert(n1, t.locateParentUpdateSize(n1))

n2 = TreeNode(18)