Esempio n. 1
0
    def _right_rotate(node):
        '''
        FIXME:
        Implement this function.

        The lecture videos provide a high-level overview of tree rotations,
        and the textbook provides full python code.
        The textbook's class hierarchy for their AVL tree code is fairly different from our class hierarchy,
        however, so you will have to adapt their code.
        '''
        if node.left:
            if node.left.right:
                new_node = Node(node.left.value)
                new_node.left = node.left.left
                new_node.right = Node(node.value)
                new_node.right.left = node.left.right
                new_node.right.right = node.right
            elif node.left.left:
                new_node = Node(node.left.value)
                new_node.left = node.left.left
                new_node.right = Node(node.value)
                new_node.right.right = node.right
            else:
                new_node = node
        else:
            new_node = node
        return new_node
Esempio n. 2
0
	def _right_rotate(node):
		if node is None or node.left is None:
			return node	
		newroot = Node(node.left.value)
		newroot.left = node.left.left
		
		new_right = Node(node.value)
		new_right.right = node.right
		new_right.left = node.left.right
		newroot.right = new_right
		return newroot
Esempio n. 3
0
    def _left_rotate(node):
        '''
        FIXME:
        Implement this function.
        The lecture videos provide a high-level overview of tree rotations,
        and the textbook provides full python code.
        The textbook's class hierarchy for their AVL tree code is fairly different from our class hierarchy,
        however, so you will have to adapt their code.
        '''
        if node is None or node.right is None:
            return node

        node1 = Node(node.right.value)
        node1.right = node.right.right

        leftNode = Node(node.value)
        leftNode.left = node.left
        leftNode.right = node.right.left

        node1.left = leftNode

        return node1