trees

14
TREES

Upload: devin-barlow

Post on 01-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

Trees. Overview. Tree Representation and Terminology Binary Trees Binary Search Trees Pointer-Based Representation of a Binary Tree Array-Based Representation of a Binary Tree. Tree. A tree is a collection of nodes and directed edges , satisfying the following properties: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Trees

TREES

Page 2: Trees

OVERVIEW• Tree

• Representation and Terminology

• Binary Trees

• Binary Search Trees

• Pointer-Based Representation of a Binary Tree

• Array-Based Representation of a Binary Tree

Page 3: Trees

TREE

• A tree is a collection of nodes and directed edges, satisfying the following properties:– There is one specially designated node called the root,

which has no edges pointing to it.– Every node except the root has exactly one edge

pointing to it.– There is a unique path (of nodes and edges) from the

root to each node.

Page 4: Trees

GRAPHICAL REPRESENTATION• Trees, as defined on the preceding slide, are typically

drawn with circles (or rectangles) representing the nodes and arrows representing the edges.

• The root is typically placed at the top of the diagram, with the rest of the tree below it.

Trees: Not Trees:

root

edge

node

Leaf nodes

Page 5: Trees

TERMINOLOGY (CONT’D.)• If an edge goes from node a to node b, then a is called the

parent of b, and b is called a child of a.• Children of the same parent are called siblings.• If there is a path from a to b, then a is called an ancestor

of b, and b is called a descendent of a.• A node with all of its descendants is called a subtree.• If a node has no children, then it is called a leaf of the tree.• If a node has no parent (there will be exactly one of these),

then it is the root of the tree.

Page 6: Trees

TERMINOLOGY: EXAMPLEA

B C

D EF

G H

I

J K

• A is the root• D, E, G, H, J & K

are leaves• B is the parent of

D, E & F• D, E & F are

siblings and children of B

• I, J & K are descendants of B

• A & B are ancestors of I

subtree

Page 7: Trees

BINARY TREES• Intuitively, a binary tree is LIKE a tree in which each node has

no more than two children.• Formally, a binary tree is a set T of nodes such that either:

– T is empty, or– T consists of a single node, r, called the root, and two (non-

overlapping) binary trees, called the left and right subtrees of r.

• UNLIKE trees, binary trees may be empty, and they distinguish between left and right subtrees.

(These two binarytrees are distinct.)

Page 8: Trees

SAMPLE BINARY TREE

Data

Left_child Right_child

Data

null null

Data

null null

Data

null null

Data

null null

Data

Left_child Right_child

Data

Left_child Right_child

Root

Page 9: Trees

BINARY SEARCH TREES• A binary search tree is a binary tree in which each node, n,

has a value satisfying the following properties:– n’s value is > all values in its left subtree, TLeft,

– n’s value is < all values in its right subtree, TRight, and

– TLeft and TRight are both binary search trees.

John

PeterBrenda

Amy Mary Tom

21

2

3

55

34

135

8

Page 10: Trees

TERMINOLOGY (CONT’D.)• Intuitively, the level of a node is the number of nodes on a path

from the root to the node.• Formally, level of node, n:

– If n is the root of a tree, then it is at level 1.– Otherwise, its level is 1 greater than the level of its parent.

• Height of binary tree, T:– If T is empty, its height is 0.– Otherwise, its height is the maximum level of its nodes, or,

equivalently, 1 greater than the height of the root’s taller subtree. Namely,

height(T) = 1 + max { height( TLeft ), height(TRight ) }

Page 11: Trees

TERMINOLOGY (CONT’D.)• Intuitively, a binary tree is full if it has no missing nodes.• Formally, a binary tree of height h is full if

– It is empty (h = 0).– Otherwise, the root’s subtrees are full binary trees of height h

– 1.• If not empty, each node has 2 children, except the nodes at level

h which have no children.• Alternatively, the binary tree has all of its leaves at level h.

Page 12: Trees

TERMINOLOGY (CONT’D.)• Intuitively, a binary tree of height h is complete if it is full down

to level h – 1, and level h is filled from left to right.• Formally, a binary tree of height h is complete if

– All nodes at level h – 2 and above have 2 children each,– If a node at level h – 1 has children, all nodes to its left at the

same level have 2 children each, and– If a node at level h – 1 has 1 child, it is a left child.

Page 13: Trees

TERMINOLOGY (CONT’D.)• A binary tree is balanced if the difference in height

between any node’s left and right subtree is 1.

• Note that:– A full binary tree is also complete.– A complete binary tree is not always full.– Full and complete binary trees are also balanced.– Balanced binary trees are not always full or complete.

Page 14: Trees

OPERATIONS ON TREE• Different operations on a Tree are as follows

– Insertion– Deletion– Searching– Traversal

Pre-Order In-Order Post- Order

• Please follow the Power Point Presentations on Insertion, Deletion and Traversal using Binary Search Tree.