Data structures and algorithms lab9

Post on 22-May-2015

1.130 views 1 download

Transcript of Data structures and algorithms lab9

DATA STRUCTURES AND ALGORITHMS

LAB 9

Bianca Tesila

FILS, April 2014

OBJECTIVES

Binary Trees Binary Search Trees

BINARY TREES & BINARY SEARCH TREES

What is a tree? How can we check if a graph is a tree?

What binary tree traversals do you know? How do they work?

What’s the difference between a binary tree and a binary search tree?

What traversal should we use in order to get the values of the nodes in ascending order?

What happens when we delete a node from a binary search tree?

BINARY TREES APPLICATIONS

!! Exercise:Write a function that displays the values  of the nodes located on a given level (sent as a parameter).

Hint: What happens when the given level greater than the

tree’s height? Make a recursive function in which you decrement level

by 1 as you advance to the next level. When level equals 0, you’ve reached the given level.

Display (T,level):if(level==0) then print(T.data)else Display (T.left, level-1); Display (T.right, level-1);

BINARY TREES APPLICATIONS

!! Exercise:Given a binary tree, compute its "maximumHeight" -- the number of nodes along the longest path from the root node down to the farthest leaf node.

Hint:The maximum height of a tree is the maximum of the heights of its children

BINARY TREES APPLICATIONS

!! Exercise:

Write a function that returns, for the root node, the difference between the height of the left sub-tree and the height of the right sub-tree.

Hint: you should take into consideration the maximum heights of the sub-

trees. use the previous exercise

int difHeight() {

 

    if(this == NULL) { return - 1;}   

    return abs(left_son->maxHeight()-right_son->maxHeight());

BINARY SEARCH TREES APPLICATIONS

!! Exercise:Write a function which finds the lowest value in a binary search tree.

Hint: traverse the node from root to left, recursively,

until left is NULL the node whose left is NULL is the node with

minimum value

BINARY SEARCH TREES APPLICATIONS

!! Exercise:Write a function that displays the nodes which have values greater than x and smaller thany, where x and y are given as parameters.

Hint: Take the value of the root into account in order to decide on which way to go to find the corresponding nodes.

BINARY SEARCH TREES APPLICATIONS

BINARY SEARCH TREES APPLICATIONS

!! Exercise:Write a function that rotates a binary search tree that is given as a parameter. It shouldn’t change the results of the inorder traversal.

BINARY SEARCH TREES APPLICATIONS

Hint: if the height of the right subtree is smaller

than the height of the left subtree, it should be right-rotated.

if the height of the left subtree is smaller than the height of the right subtree, it should be left-rotated.

if the tree is balanced, nothing happens

HOMEWORK

Finish all the lab assignments.