Trees are a fundamental data structure.ppt

ZuaAuh 1 views 23 slides Oct 20, 2025
Slide 1
Slide 1 of 23
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23

About This Presentation

Trees are a fundamental data structure in computer science, used to represent hierarchical relationships. This tutorial covers several key types of trees.


Slide Content

Data Structures & Algorithms
Trees

Data Structures & Algorithms
Trees: Basic terminology[1]
•Hierarchical data structure
•Each position in the tree is called a node
•The “top” of the tree is called the root
•The nodes immediately below a node are called its children; nodes with no
children are called leaves (or terminal nodes), or terminal nodes, and the
node above a given node is its parent (or father)
•A node x is ancestor of node y if x is father of y or father of some ancestor
of y. y is called descendent of x. Ancestor of a node is its parent, grand
parent or grand-grand parent or so on….

Data Structures & Algorithms
Trees: Basic terminology[2]
•Nodes with the same parent are siblings
•A node plus the collection of nodes beneath it is called a
subtree
•The number of nodes in the longest path from the root to a leaf
is the depth (or height) of the tree
–is the depth 2 or 3?
–depends on the author

Data Structures & Algorithms
Root
Node A
Node H
Node B
Node GNode FNode ENode DNode C
Node KNode J
Node L
Node I
Nodes C, H, and I form a subtree
Nodes H and I are siblings
C is H’s parent, H and I are children of C
What is the depth of this tree?

Data Structures & Algorithms
Binary Trees
•A commonly used type of tree is a binary tree
•Each node has at most two children
•The “tree” is a conceptual structure
•The data can be stored either in a dynamic linked tree
structure, or in contiguous memory cells (array)
according to a set pattern; in other words,
implementation can be pointer-based or array-based

Data Structures & Algorithms
Binary trees
•A tree is called strictly binary tree if every non leaf node has exactly two
children.
•A strictly binary tree having n leaves always contain 2n-1 nodes
•Text book definition of depth of a tree
–Depth of binary tree is maximum level of any leaf in the tree.
–Root of tree is at level 0, and level of any other node in the tree is one more than
the level of its father

Data Structures & Algorithms
Binary Trees
•A complete binary tree of level d is the strictly binary tree all of whose
leaves are at level d
•A complete binary tree of level d has 2
l
nodes at each level l where
0<=l<=d
•Total number of nodes (tn) in a complete binary tree of depth d will
be:
1222222
1
0
210




d
d
j
jd
tn
For a binary tree of height h there are O(2
h
) nodes

Data Structures & Algorithms
Binary Trees
•For a complete binary tree if number of nodes (tn) are known, then we may
find depth of the binary tree
1-1)(log
1)(log1
12
12
2
2
1
1






tnd
tnd
tn
tn
d
d
A binary tree with nodes n has height O(log
2
n)

Data Structures & Algorithms
Binary Trees Storage
•Linked List based implementation
•Array based implementation

Data Structures & Algorithms
Binary Tree: as a linked structure
•Each node in the tree consists of:
–The data, or value contained in the element
–A left child pointer (pointer to first child)
–A right child pointer (pointer to second child)

Data Structures & Algorithms
Binary Tree: as a linked structure
•A root pointer points to the root node
–Follow pointers to find every other element in the tree
•Add and remove nodes by manipulating pointers
•Leaf nodes have child pointers set to null

Data Structures & Algorithms
class CBinTree
{
struct Node
{
int value;
Node *LeftChild,*RightChild;
}*Root;
/***Operations*********/
/************************/
};

Data Structures & Algorithms
ROOT

Data Structures & Algorithms
Binary Tree: contiguous storage
•Value in root node stored first, followed by left child, then right child
•Each successive level in the tree stored left to right; unused nodes in tree
represented by a bit pattern to indicate nothing stored there
•Children of any given node n is stored in cells 2n and 2n + 1 (If array index
starts at 1)
•Can calculate position for any given node
•Storage allocated as for full tree, even if many nodes empty
•For a tree of depth h we need array of 2
h+1
-1 cells

Data Structures & Algorithms
Binary Trees
•Full binary tree of height (depth) h: all nodes at a
height less than h have exactly two children
•Balanced binary tree: for each node, the difference
in depth of the right and left subtrees is no more than
one
•Completely balanced tree: left and right subtrees of
every node have the same height

Data Structures & Algorithms
Full Binary Tree
A very sparse,
unbalanced tree

Data Structures & Algorithms
Primitive Operations
•Left(node): Gives index/pointer of left child
•Right(node): Gives index/pointer of right child
•Parent(node): Returns index/pointer of parent
•Brother(node): Returns index/pointer of brother
•Root: Gives index/pointer of root node
•Info(Node): Data/Info stored at node
•IsLeft(node): Is node left child? Yes/No
•IsRight(node): Is node right child? Yes/No

Data Structures & Algorithms
Common Operations
•Tree traversal
•Node addition
•Node deletion
•Destroy

Data Structures & Algorithms
Traversal of Binary Trees
•Pass through all nodes of tree
•Inorder (symmetric traversal)
•Preorder (depth first traversal)
•Postorder

Data Structures & Algorithms
Trees Traversal
•Inorder
–(Left) Root (Right)
•Preorder
–Root (Left) (Right)
•Postorder
–(Left) (Right) Root
Root
Left Right

Data Structures & Algorithms
Inorder Traversal
Left Root Right manner
•Left + Right
•[Left*Right]+[Left+Right]
•(A*B)+[(Left*Right)+E)
•(A*B)+[(C*D)+E]
+
* +
A B* E
C D
(A*B)+(C*D+E)

Data Structures & Algorithms
Preorder Traversal
Root Left Right manner
•+ Left Right
•+ [*Left Right] [+Left Right]
•+(*AB) [+ *Left Right E]
•+*AB + *C D E
+
* +
A B* E
C D

Data Structures & Algorithms
Postorder Traversal
Left Right Root manner
•Left Right +
•[Left Right *] [Left Right+] +
•(AB*) [Left Right * E + ]+
•(AB*) [C D * E + ]+
•AB* C D * E + +
+
* +
A B* E
C D
Tags