Transcript Insertion

1.
2.
3.
4.
General Trees
Binary Search Trees
AVL Trees
Heap Trees
 Insertion
◦ FIFO
◦ LIFO
◦ Key-sequenced Insertion
 Deletion
 Changing
a General Tree into a
Binary Tree
Given the parent Node a new node
may be inserted as
 FIFO
First in-first out (FIFO) insertion
Data Structures: A Pseudocode Approach with C
5
Insertion
Given the parent Node a new node may be
inserted as
 FIFO
 LIFO
Last in-first out (LIFO) insertion
Data Structures: A Pseudocode Approach with C
7
Insertion
Given the parent Node a new node may be
inserted as
 FIFO
 LIFO
 Key-sequenced Insertion
Key-sequenced insertion
Data Structures: A Pseudocode Approach with C
9
 Insertion
◦ FIFO
◦ LIFO
◦ Key-sequenced Insertion
 Deletion
 Changing
a General Tree into a
Binary Tree
 For
general trees nodes to be
deleted are restricted to be
“leaves”
 Otherwise a node maybe
“purged”, i.e. a node is deleted
along with all its children
 Insertion
◦ FIFO
◦ LIFO
◦ Key-sequenced Insertion
 Deletion
 Changing
a General Tree into a
Binary Tree
 Changing
the meaning of the two
pointers:
 Leftchild …..first child
 Rightchild ….. Next siblings
Changing a General Tree to a
Binary Tree
Data Structures: A Pseudocode Approach with C
14
Changing a General Tree to a
Binary Tree
Data Structures: A Pseudocode Approach with C
15
Changing a General Tree to a
Binary Tree
Data Structures: A Pseudocode Approach with C
16
1.
2.
3.
4.
General Trees
Binary Search Trees
AVL Trees
Heap Trees
 Basic
Concepts
 BST Operations
 Threaded Trees
 All
items in left subtree < root
 All items in right subtree > root
A binary search tree
Not a binary search tree
Two binary search trees representing
the same set:
 Basic
Concepts
 BST Operations
 Threaded Trees
 Traversal
 Search
◦ Smallest ……….. ?
◦ Largest …………?
◦ Specific element
 Insertion
 Deletion
 Print
out all the keys in sorted
order
Inorder: 2, 3, 4, 6, 7, 9, 13, 15, 17, 18, 20
 Traversal
 Search
◦ Smallest ……….. ?
◦ Largest …………?
◦ Specific element
 Insertion
 Deletion



Return the node containing the
smallest element in the tree
Start at the root and goes left/right as
long as there is a left/right child. The
stopping point is the smallest/largest
element
Time complexity = O(height of the
tree)
If we are searching for 15, then we
are done.
 If we are searching for a key < 15,
then we should search in the left
subtree.
 If we are searching for
a key > 15, then we
should search in the
right subtree.

Searching BST
 Traversal
 Search
◦ Smallest ……….. ?
◦ Largest …………?
◦ Specific element
 Insertion
 Deletion




Proceed down the tree as you would with a find
If X is found, do nothing (or update something)
Otherwise, insert X at the last spot on the path traversed
Time complexity = O(height of the tree)
 Traversal
 Search
◦ Smallest ……….. ?
◦ Largest …………?
◦ Specific element
 Insertion
 Deletion
 When
we delete a node, we need
to consider how we take care of
the children of the deleted node.
 This has to be done such that the
property of the search tree is
maintained.
Three cases:
(1) the node is a leaf
◦ Delete it immediately
(2) the node has one sub-tree (right or left)
◦ Adjust a pointer from the parent to bypass that node
(3) the node has 2 children
◦ replace the key of that node with the
minimum element at the right subtree
(or the maximum element at the left
subtree)
◦ delete the minimum element
Has either no child or only right child
because if it has a left child, that left
child would be smaller and would have
been chosen. So invoke case 1 or 2.

Time complexity = O(height of the tree)
 Basic
Concepts
 BST Operations
 Threaded Trees
 Sparing
recursion and stack
 Making use of null right child of
leaves to point to next node
1.
2.
3.
4.
General Trees
Binary Search Trees
AVL Trees
Heap Trees
 Properties
 Operations
 It
is a balanced binary tree
(definition of Russian
mathematicians Adelson-Velskii
and Landis)
 The height of its sub-trees differs
by no more than one (its balance
factor is -1, 0, or 1), and its
subtrees are also balanced.
A
sub tree is called
 Left high (LH) if its balance is 1
 Equally high (EH) if it is 0
 Right high (RH) if it is -1
 Insertion
and deletion are same as
in BST
 If unbalance occurs corresponding
rotations must be performed to
restore balance

Steps:
◦ Check if case is case 1 or 2 of the following and act
accordingly
◦ Case 1:
tree is left high &
out-of-balance is created by a adding node to the
left of the left sub-tree
◦ …… One right rotation is needed
 Rotate out-of-balance node right
•Case 1 *
Tree is left balanced
unbalance is caused by node on the left of left sub-tree
h+2
h+1
h+1
h+1
h
h
h
h
h
◦ Case 2:
tree is left high
out-of-balance is created by a adding node
to the right of the left sub-tree
◦ …… Two rotations are needed:
Move from bottom of left sub-tree
upwards till an unbalanced node is found
and rotate it left
 Rotate left sub-tree right
Add node to right of left balanced subtree
h+2
h+1
h+1h
h
h
h+2
h+2
h+1
h+1
h
 First rotation .. Left rotation of unbalanced node c
 Second rotation … Right rotation of left sub-tree g
h