49
PRESENTED BY: TABISH HAMID PRIYANKA MEHTA CONTACT NO: 08376023134 Submitted to: MISS. RAJ BALA SIMON

Data Structure: TREES

Embed Size (px)

Citation preview

PRESENTED BY:

TABISH HAMIDPRIYANKA MEHTA

CONTACT NO: 08376023134

Submitted to:

MISS. RAJ BALA SIMON

TREES

SESSION OUTLINE:

• TREE

• BINARY TREE

• TREES TRAVERSAL

• BINARY SEARCH TREE

• INSERTION AND DELETION IN BINARY SEARCH TREE

• AVL TREE

TREES• TREE DATA STRUCTURE IS MAINLY USED TO REPRESENT DATA CONTAINING A HIERARCHICAL RELATIONSHIP BETWEEN ELEMENTS .

TREES

• COLLECTION OF NODES ORFINITE SET OF NODES

• THIS COLLECTION CAN BE EMPTY.• DEGREE OF A NODE IS NUMBER OF NODES

CONNECTED TO A PARTICULAR NODE.

TREES LEVELS

• A PATH FROM NODE N1 TO NK IS DEFINED AS A SEQUENCE OF NODES N1, N2, …….., NK.

• THE LENGTH OF THIS PATH IS THE NUMBER OF EDGES ON THE PATH.

• THERE IS A PATH OF LENGTH ZERO FROM EVERY NODE TO ITSELF.

• THERE IS EXACTLY ONE PATH FROM THE ROOT TO EACH NODE IN A TREE.

TREES

• HEIGHT OF A NODE IS THE LENGTH OF A LONGEST PATH FROM THIS NODE TO A LEAF

• ALL LEAVES ARE AT HEIGHT ZERO• HEIGHT OF A TREE IS THE HEIGHT OF ITS ROOT

(MAXIMUM LEVEL)

TREES

• DEPTH OF A NODE IS THE LENGTH OF PATH FROM ROOT TO THIS NODE

• ROOT IS AT DEPTH ZERO

• DEPTH OF A TREE IS THE DEPTH OF ITS DEEPEST LEAF THAT IS EQUAL TO THE HEIGHT OF THIS TREE

TREES

BINARY TREE

Complete binary treeFull binary tree

FULL BINARY TREE

A binary tree is said to be full if all its leaves are at the same level and every internal node has twochildren.

The full binary tree of height h has

l = 2h leaves and

m = 2h – 1 internal nodes.

COMPLETE BINARY TREE

A complete binary tree is either a full binary tree or one that is full except for a segment of missing leaves on the right side of the bottom level.

PICTURE OF A BINARY TREEa

b c

d e

g h i

l

f

j k

TREE TRAVERSALS

• PRE-ORDER• N L R

• IN-ORDER• L N R

• POST-ORDER• L R N

TREE TRAVERSALSPRE-ORDER(NLR)

1, 3, 5, 9, 6, 8

TREE TRAVERSALSIN-ORDER(LNR)

5, 3, 9, 1, 8, 6

TREE TRAVERSALSPOST-ORDER(LRN)

5, 9, 3, 8, 6, 1

TREE TRAVERSALS

IN-ORDER TRAVERSAL : 1,2,3,4,5,6,7,8,9PREORDER TRAVERSAL:1,2,4,7,5,8,3,6,9

ARE GIVEN.

DRAW BINARY TREE FROM THESE TWO TRAVERSALS?

In:4,7,2,8,5Pre:2,4,7,5,8

In:6,9,3Pre:3,6,9

1

7

6

1

2

54

8

3

9

REPRESENTATION OF BINARY TREE

i)SEQUENTIAL REPRESENTATION (ARRAYS)

ii)LINKED LIST REPRESENTATION

I) SEQUENTIAL REPRESENTATION (ARRAYS)

REQUIRED THREE DIFFERENT ARRAYS

1.ARR (CONTAIN ITEMS OF TREE)

2.LC (REPRESENT LEFT CHILD)

3.RC (REPRESENT RIGHT CHILD)

SEQUENTIAL REPRESENTATION (ARRAYS)

A B C D E ‘\0’ F

1 3 -1 -1 -1 -1 -1

2 4 6 -1 -1 -1 -1

arr

lc

rc

LINKED LIST REPRESENTATION

IN LINKED LIST REPRESENTATION

EACH NODE HAS THREE FIELDS:-

DATA PARTADDRESS OF THE LEFT SUBTREE. ADDRESS OF THE RIGHT SUBTREE

EXTENDED BINARY TREEA BINARY TREE CAN BE CONVERTED TO AN EXTENDED BINARY

TREE BY ADDING NEW NODES TO ITS LEAF NODES AND TO THE NODES THAT HAVE ONLY ONE CHILD. THESE NEW NODES ARE ADDED IN SUCH A WAY THAT ALL THE NODES IN RESULTANT TREE HAVE ZERO OR TWO CHILDREN.

IT IS ALSO KNOWN AS 2-TREE.THE NODES OF THE ORIGINAL TREE ARE CALLED INTERNAL NODES.

NEW NODES THAT ARE ADDED TO BINARY TREE ,TO MAKE IT AN EXTENDED BINARY TREE ARE CALLED EXTERNAL NODES.

25

.

Binary Tree Extended Binary Tree

Binary Search tree

It is a tree that may be empty.and non-empty binary Search tree satisfies the following properties :-(1)Every element has a key or value and no two elements have the same key that is all keys are unique.(2) The keys if any in the left sub tree of the root are smaller than the key in the node.(3) The keys if any in the right sub tree of the root are larger than the key in the node.(4) Left and Right sub trees of the root are also binary search tree.

Example of the Binary Search Tree :- The input list is 20 17 6 8 10 7 18 13 12 5

20

17

6 18

5 8

7 10

13

12

Insertion in Binary Search TreeInsert 53 in this binary search tree

Representation of Binary Search Tree :-

struct btreenode{ struct btreenode *left; int data; struct btreenode *right;};

Function code of Inorder :-

void inorder(struct btreenode *sr){ if(sr!=NULL) { inorder(sr->left); printf(“%d”,sr->data); inorder(sr->right); }}

Function code of Preorder :-

void preorder(struct btreenode *sr){ if(sr!=NULL) { printf(“%d”,sr->data); preorder(sr->left); preorder(sr->right); }}

Function code of Postorder :-

void postorder(struct btreenode *sr){ if(sr!=NULL) { postorder(sr->left); postorder(sr->right); printf(“%d”,sr->data); }}

Function code for Insertion of a node in binary search tree-

void insert(struct btreenode **sr,int num){ if(*sr==NULL) { *sr=malloc (sizeof(struct btreenode)) (*sr)->left=NULL; (*sr)->data=num; (*sr)->right=NULL; }

else { if(num<(sr)->data) insert(&((*sr)->left),num); else insert(&((*sr)->right),num); }}

CASES FOR DELETION

• IF NODE HAS NO SPECIFIC DATA OR NO CHILD

• IF NODE HAS ONLY LEFT CHILD.

• IF NODE HAS ONLY RIGHT CHILD

• IF NODE HAS TWO CHILDREN

CASE 1

• IF NODE TO BE DELETED HAS NO CHILD

IF (( X->LEFT == NULL) && (X->RIGHT == NULL))

{• IF ( PARENT ->RIGHT == X)

• PARENT -> RIGHT = NULL;

• ELSE

• PARENT -> LEFT = NULL;

• FREE (X);

}

X 14 200 X 15 X

X 18 X

parent

CASE 2

IF NODE TO BE DELETED HAS ONLY RIGHT CHILD

IF (( X-> LEFT==NULL) && (X-> RIGHT !=NULL))

{• IF (PARENT -> LEFT == X)

• PARENT ->LEFT = X-> RIGHT;

• ELSE

• PARENT ->RIGHT = X-> RIGHT;

• FREE (X);

}

180 14 200 X 15 X

X 16 220 X 18 X

X 17 X

parent

X

220 14 200 X 15 X

X 18 XX 17 X

parent

CASE 3IF NODE HAS ONLY LEFT CHILD

IF((X->LEFT!=NULL)&&(X->RIGHT==NULL))

{

IF (PARENT->LEFT==X)

PARENT->LEFT=X->LEFT;

ELSE

PARENT->RIGHT->X->LEFT;

FREE(X);

}

180 14 200 X 15 X

X 16 X 220 18 X

X 17 X

parent

X

180 14 220 X 15 X

X 16 220 X 17 X

parent

CASE 4IF NODE TO BE DELETED HAS TWO CHILDREN

IF((X-> LEFT !=NULL) && (X-> RIGHT!=NULL))

{ PARENT = X;

XSUCC= X->RIGHT;

WHILE (XSUCC->LEFT!=NULL)

{

PARENT = XSUCC;

XSUCC =XSUCC-> LEFT;

}

X->DATA = XSUCC->DATA;

X=XSUCC }

X 15 X 180 14 200

X 16 X 240 18 220

X 17 X X 19 X

parent

X

XSUCC

X 15 X 180 17 200

X 16 X X 18 220

X 19 X