17 2 Tree Ops
17 2 Tree Ops
01
JAVA 17
Objectives
— Binary Tree Basics
— Tree Traversals
— Common Tree Operations
— Binary Search Trees
02
JAVA 17
// recursive case
int left = size(current.left);
int right = size(current.right);
return 1 + left + right; // count 1 for current
}
22
JAVA 17
// recursive case
int left = height(current.left);
int right = height(current.right);
return 1 + (left < right ? right : left); // count 1 for current
}
23
JAVA 17
24
JAVA 17
25
JAVA 17
Generic Node
— A single element of a structure such as a BST
— Each node contains:
— one data value
— one reference to the left node
— one reference to the right node
class TreeNode<Type>
{
Type data;
TreeNode<Type> left;
TreeNode<Type> right;
}
...
TreeNode myNode = new TreeNode<Type>();
myNode.data = 18;
myNode.left = null;
myNode.right = null;
26
JAVA 17
27
JAVA 17
BST Search
28
JAVA 17
BST Class
public class BST<Type extends Comparable<Type>>
{
private TreeNode<Type> root;
public BST()
{
this.root = null;
}
29
JAVA 17
BST Add
30
JAVA 17
31
JAVA 17
32
JAVA 17
→
Removing -3
33
JAVA 17
→
Removing 55
34
JAVA 17
→
Removing 29
35
JAVA 17
→
Removing 55
36
JAVA 17
38
JAVA 17
39