Trees by Wilder
Trees by Wilder
1 Trees
Object
Component
TextField TextArea
x = 80
50 + 30
20 + 10
2 × 10
❡
A
❡ C❡
B
D❡ E❡
• sibling two nodes are siblings if they have the same parent.
17 11
9 20 8 14
Full binary tree
17 11
9 20 8 14
13 16 15 NULL
Complete but not Full binary tree
17 11
9 20 8 14
13 NULL 16 15
Not Complete or Full binary tree
10
NULL 11
NULL 14
NULL 23
Unbalanced binary tree
11
NULL 11
14 NULL
NULL 23
Unbalanced binary tree (zipper tree)
12
1. An empty tree
2. Or it has a root and the remaining nodes are divided into
two disjoint sets named the left subtree and the right
subtree.
struct BinaryTreeNode
{
int data;
BinaryTreeNode *left;
BinaryTreeNode *right;
};
• Create a node
• Delete a node
• Search a tree
• Copy a tree
15
newNode->data = newVal;
newNode->left = NULL;
newNode->right = NULL;
return newNode;
}
16
BinaryTreeNode *CreateNode(
int newVal,
BinaryTreeNode *leftPtr = NULL,
BinaryTreeNode *rightPtr = NULL )
{
BinaryTreeNode *newNode = new BinaryTreeNode;
newNode->data = newVal;
newNode->left = leftPtr;
newNode->right = rightPtr;
return newNode;
}
17