cse 3358 note set 5
DESCRIPTION
CSE 3358 Note Set 5. Data Structures and Algorithms. Trees. Overcome the linear nature of a list. Allows for storage of hierarchical data. Recursive Definition of Tree: An empty structure is empty tree - PowerPoint PPT PresentationTRANSCRIPT
CSE 3358 NOTE SET 5
Data Structures and Algorithms
Trees
Overcome the linear nature of a list. Allows for storage of hierarchical data
Recursive Definition of Tree:
• An empty structure is empty tree• If t1, …, tk are disjointed trees, then the structures
whose root has as its children the roots of t1, …, tk is also a tree
• Only structures generated by these two rules are trees
Tree Terminology
• Root
• Children
• Parent
• Ancestors
• Descendants
Tree Terminology
A
B C
K L
G H
JI
FED
• Height of C
• Path from A to J
• Length of Path from A to J
• Depth of F
Tree Terminology
20
10 15
18 19
16 17
98
765
• Children of 10
• Ancestors of 18
• Descendant 15
• Leaves of the tree
Generic Tree Traversals
Pre-order Work is done on children before parent is processed
Post-order Work is done on parent after children are processed
Binary Tree
Each node has 2 children at max. Left and Right Benefit w/ respect to efficiency of
algorithms Complete Binary Tree
All non-leaf nodes have both children
All leaves are at same level
Worst Case Binary Tree
Binary Search Tree
Binary Search Property:
For each node n of the tree, all values stores in its left subtree are less than the value v stored in n and all values stored in the right subtree are greater than v.
v
• No =. Only < and >. • Storing multiple copies of the same value is avoided.• Meaning of < and > depend on what the data payload of the
node is• Average Depth is O(lg N)
Implementation
Can be implemented as: Array
struct node { T* payload; int leftIdx; int rightIdx;};
If element deleted, update of entire tree may be necessary. Linked Dynamic structure
struct node { T* payload; node *left, *right};
Search Intuition
Complexity of Search
Based on the number of comparisons performed during the searching process depends on the number of nodes on the unique path
from root to the node being searched for. Complexity: The length of the path leading to this
node plus 1. depends on the overall shape of the tree
Think about a tree that is essentially a List vs a balanced tree
Internal Path Length:
The sum of all path lengths of all nodes.
IPL
14
12 16
IPL
14
7 27
3 9 32
IPL
14
7 27
3 9 32
Formula for IPL:
Formula for Average IPL:
IPL for Binary Tree
Worst Case: tree that looks like a Linked List
Best Case: all leaves in tree of height h are in at most two levels only nodes in the next to last level can have children
2
3
4
5
?