예제 #1
0
    def help(self, left, right, nums):
        if left > right:
            return None

        mid = (left + right) / 2
        root = TreeNode(nums[mid])
        root.left = self.help(left, mid - 1, nums)
        root.right = self.help(mid + 1, right, nums)
        return root
예제 #2
0
파일: test_ddt.py 프로젝트: ivandariojr/ddt
def stump():
    labels = ['zero', 'one']
    left = TreeNode(2, 2, None, None, labels)
    right = TreeNode(2, 2, None, None, labels)
    stump = TreeNode(2, 2, left, right, ['1-sigma', 'sigma'])
    stump.beta = nn.Parameter(torch.Tensor([[1], [0]]))
    stump.phi = nn.Parameter(torch.Tensor([0]))
    left.beta = nn.Parameter(torch.Tensor([1, 0]))
    right.beta = nn.Parameter(torch.Tensor([0, 1]))
    return stump
예제 #3
0
    def _testSolution(self, skip=(), assertions=(), deep=3):
        node_count = pow(2, deep)
        node_queue = Queue.Queue(node_count)
        root_queue = Queue.Queue(node_count / 2)

        # Generate the tree
        nodes = [TreeNode(x) for x in xrange(1, node_count)]
        root_queue.put(nodes[0])
        for node in nodes[1:]:
            node_queue.put(node)

        while not node_queue.empty():
            root = root_queue.get()
            root.left = node_queue.get()
            root.right = node_queue.get()
            root_queue.put(root.left)
            root_queue.put(root.right)

            if root.left.val in skip:
                root.left = None
            if root.right.val in skip:
                root.right = None

        # Solution
        self.solution.connect(nodes[0])

        # Assertion
        for node, length in assertions:
            self.assertLinkedList(nodes[node - 1], length)
예제 #4
0
def binary_tree_constructor(node_list: List[int]) -> TreeNode:
    """Returns root of tree constructed from List[int]."""
    root = TreeNode(node_list[0])
    current = [root]
    ptr = 1

    while ptr < len(node_list):
        next_node = []
        for n in current:
            if node_list[ptr]:
                n.left = TreeNode(node_list[ptr])
                next_node.append(n.left)
            ptr += 1
            if node_list[ptr]:
                n.right = TreeNode(node_list[ptr])
                next_node.append(n.right)
            ptr += 1
        current = next_node
    return root
예제 #5
0
    def sortedArrayToBST(self, nums):
        """
        :type nums: List[int]
        :rtype: TreeNode
        """

        if len(nums) == 0:
            return None
        if len(nums) == 1:
            return TreeNode(nums[0])

        return self.help(0, len(nums) - 1, nums)
예제 #6
0
def get_map_results_faster(prefix, query_chunks):

    node = TreeNode.follow_chunks(prefix, query_chunks)
    query = node.get_most_popular_child_chunk_by_country2()

    results = []
    for country, text, count in query:
        results.append({
            'text': text,
            'country': country,
            'count': count
        })

    return {
        'words': results
    }
예제 #7
0
def get_map_results(prefix, query_chunks):

    node = TreeNode.follow_chunks(prefix, query_chunks)
    countries = node.get_top_chunk_countries_for_children()

    words = []
    for country in countries:
        word, count = node.get_most_popular_child_chunk_in(country)
        words.append({
            'text': word,
            'country': country,
            'count': count
        })

    return {
        'words': words
    }
예제 #8
0
def create_item():

    parent_node = TreeNode.query.filter(TreeNode.parent_id == 1).first()

    if request.method == 'POST':
        title = request.form['name']
        body = request.form['body']

        try:
            item = TreeNode(name=title, parent=parent_node, body=body)
            db.session.add(item)
            db.session.commit()
        except:
            print('Something wrong')

        return redirect(url_for('tree.index'))

    form = ItemForm()
    return render_template('tree/create_item.html', form=form)
예제 #9
0
파일: test.py 프로젝트: junkainiu/leetcode
    def _testSolution(self, deep):
        node_count = pow(2, deep)
        node_queue = Queue.Queue(node_count)
        root_queue = Queue.Queue(node_count / 2)

        # Generate the tree
        nodes = [TreeNode(x) for x in xrange(1, node_count)]
        root_queue.put(nodes[0])
        for node in nodes[1:]:
            node_queue.put(node)

        while not node_queue.empty():
            root = root_queue.get()
            root.left = node_queue.get()
            root.right = node_queue.get()
            root_queue.put(root.left)
            root_queue.put(root.right)

        # Solution
        self.solution.connect(nodes[0])

        # Assertion
        for level in xrange(deep):
            self.assertLinkedList(nodes[pow(2, level) - 1], pow(2, level))
예제 #10
0
from app import db
from models import TreeNode

db.create_all()

node = TreeNode(name='Programming language', body=None)
TreeNode(name='Dynamically typed languages', parent=node, body=None)
TreeNode(name='Python',
         parent=node.children['Dynamically typed languages'],
         body='some text')
subnode = TreeNode(name='JavaScript',
                   parent=node.children['Dynamically typed languages'],
                   body='some text')

db.session.add(node)
db.session.commit()

print(node.dump())
예제 #11
0
def get_example_tweet(prefix, query_chunks, country_name):
    """Finds an example tweet for the given query"""
    node = TreeNode.follow_chunks(prefix, query_chunks)
    return TweetChunk.get_example_tweet(country_name, node)
예제 #12
0
        :type root: TreeNode
        :rtype: List[List[int]]
        """

        result = []
        if root is None:
            return result
        stack = [root]
        while len(stack) != 0:
            t = []
            tt = []
            for node in stack:
                t.append(node.val)
                if node.left is not None:
                    tt.append(node.left)
                if node.right is not None:
                    tt.append(node.right)
            stack = tt
            result.insert(0, t)
        return result


if __name__ == '__main__':
    s = Solution()
    root = TreeNode(1)
    root.left = TreeNode(2)
    root.right = TreeNode(3)
    root.left.left = TreeNode(4)
    root.right.right = TreeNode(5)
    print s.levelOrderBottom(root)