Trees PART 1
Trees PART 1
TOPIC 1: TREES
Data
Structures
Non-
Primitive
Primitive
Diction
Integer Float String Boolean Arrays Lists Tuples Sets Files
aries
Non-
Linear
Linear
B C D
E F G
Root node: A
Internal nodes: A, B & C
External nodes (or Leaves): D, E, F & G
Siblings: ?
Level 1
Level 2
height=4
Level 3
Level 4
A A
B C B C
D E F G
D E F G
H I
d d
b f b f
a c
a c
B C
D E F G
H I J K
B C
D E F G
H I
B C
D E F
B C D
E F G H I J
B C
D E
F G
A A
A
B C B C
B C
D E D E F G D E
F G I J
Figure F
Figure D Figure E
Examples:
A
A
B C
B C
D E F G
Figure A Figure B
A A
B C B C
D E F D E
Figure C Figure D
Examples:
A
A
A
B C C
B
B C
D E F D E F G
D
G
Figure A Figure B Figure C
A A
B C B C
D E D E F
F G G
Figure D Figure E
Tree Traversals
Breadth-First Search
Depth-First Search (DFS)
(BFS) or level-order
preorder(node):
if (node == null)
return
visit(node) #print node
preorder(node.left)
preorder(node.right)
Prefix expression: + * A - B C + D E
inorder(node):
if (node == null)
return
inorder(node.left)
visit(node) #print node
inorder(node.right)
Infix expression: A * B - C + D + E
postorder(node):
if (node == null)
return
postorder(node.left)
postorder(node.right)
visit(node) #print node
Postfix expression: A B C - * D E + +
B C Expression: A B C D E F G H I
D E F G
H I
https://en.wikipedia.org/wiki/Tree_traversal