Presentation is loading. Please wait.

Presentation is loading. Please wait.

Trees Definitions Implementation Traversals K-ary Trees

Similar presentations


Presentation on theme: "Trees Definitions Implementation Traversals K-ary Trees"— Presentation transcript:

1 Trees Definitions Implementation Traversals K-ary Trees
Read Weiss, 4.1 – 4.2 Implementation Nodes and Links One Arrays Three Arrays Traversals Preorder, Inorder, Postorder K-ary Trees Converting trees: k-ary ↔ binary

2 Definitions Nodes Edges Root node Interior node Leaf Parent Children
Ancestor / Proper ancestor Descendant / Proper descendant Level of a node Height of a node / tree Degree of a node / tree Depth of node Path Acyclic graph

3 a j b k c g m d l i h f e descendants of “a”
root, height=4, depth=level=0 degree=1 proper descendants of “a” j b k c interior node, height=2, depth=level=2 degree=2 g m d l i h f e degree=0 leaf, height=0, depth=level=4 degree of tree = 2 height of tree = 4

4 Implementing a Tree Nodes and Links A B C D Node { Object value;
Node lchild; Node rchild; } // Node A B C D ▲=null link

5 Implementing a Tree One array A B C D A: 0 1 2 3 4 5 6 7 8 9
A[1] is root lchild of A[i] is A[2i] rchild of A[i] is A[2i+1] “-” means array element is null / not used A[0] not used as a node A[0] may be used to hold general info (e.g., number of nodes in tree) A B C D ▲=null link

6 Implementing a Tree Three array A B C D ▲ ▲=null link root = 4
freelist = 7 null = “/” = -1 Object value: D A - B - C - int lchild: / / / int rchild: / / / / 8 / / / / /

7 Traversals Preorder N L R preorder (Node t) if (t == null) return;
visit (t.value()); preorder (t.lchild()); preorder (t.rchild()); } // preorder

8 Traversals Inorder L N R inorder (Node t) if (t == null) return;
inorder (t.lchild()); visit (t.value()); inorder (t.rchild()); } // inorder

9 Traversals Postorder L R N postorder (Node t) if (t == null) return;
postorder (t.lchild()); postorder (t.rchild()); visit (t.value()); } // postorder

10 a j b k c g m d l i h f e preorder: a j k m l b c g i h d f e
inorder: m k l j a b i g h c f d e postorder: m l k j i h g f e d c b a

11 K-ary Trees a q c e f b d n m i p g k j degree of tree = 4
degree of nodes f and n = 3 height of tree = 3 depth=level of m = 2

12 K-ary Tree => Binary Tree
q c e f b d n m i p K-ary Binary root root leftmost child left child right sibling right child g k j

13 Traversals K-ary Tree Binary Tree n g e j k m d c b f i p q a n g e j
Preorder: Inorder: Postorder: Preorder: Inorder: Postorder:


Download ppt "Trees Definitions Implementation Traversals K-ary Trees"

Similar presentations


Ads by Google