1 / 13

# Trees - PowerPoint PPT Presentation

Trees. Definitions 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. Nodes Edges Root node Interior node Leaf Parent Children. Ancestor / Proper ancestor

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Trees' - betsy

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

• Definitions

• Read Weiss, 4.1 – 4.2

• Implementation

• One Arrays

• Three Arrays

• Traversals

• Preorder, Inorder, Postorder

• K-ary Trees

• Converting trees: k-ary↔ binary

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

Definitions

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

Node {

Object value;

Node lchild;

Node rchild;

} // Node

A

B

C

D

A: 0 1 2 3 4 5 6 7 8 9

- A B C - - D - - -

• One array

• 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

B

C

D

Implementing a Tree

• Three array

root = 4

freelist = 7

null = “/” = -1

0 1 2 3 4 5 6 7 8 9

Object value: D - - - A - B - C -

int lchild: / / 3 5 6 1 / 9 0 2

int rchild: / / / / 8 / / / / /

• Preorder

N L R

preorder (Node t)

if (t == null)

return;

visit (t.value());

preorder (t.lchild());

preorder (t.rchild());

} // preorder

• Inorder

L N R

inorder (Node t)

if (t == null)

return;

inorder (t.lchild());

visit (t.value());

inorder (t.rchild());

} // inorder

• Postorder

L R N

postorder (Node t)

if (t == null)

return;

postorder (t.lchild());

postorder (t.rchild());

visit (t.value());

} // postorder

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

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

a

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

q

c

e

f

a

b

d

q

c

e

f

n

m

i

p

b

d

n

m

i

p

g

k

j

g

k

j

Traversals

K-ary Tree

Binary Tree

Preorder:

Inorder:

Postorder:

Preorder:

Inorder:

Postorder: