Top Banner
MBA Admission in India By: Admission.edhole.com
28

Mca admission in india

Nov 17, 2014

Download

Education

Edhole.com

awesome website for today's generation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Mca admission in india

MBA Admission in India

By:

Admission.edhole.com

Page 2: Mca admission in india

Tree Data Structures

S. Sudarshan

Based partly on material from Fawzi Emad & Chau-Wen Tseng

Admission.edhole.com

Page 3: Mca admission in india

Trees Data Structures Tree

Nodes Each node can have 0 or more children A node can have at most one parent

Binary tree Tree with 0–2 children per node

Tree Binary Tree

Admission.edhole.com

Page 4: Mca admission in india

Trees

Terminology Root no parent Leaf no child Interior non-leaf Height distance from root to leaf

Root node

Leaf nodes

Interior nodes Height

Admission.edhole.com

Page 5: Mca admission in india

Binary Search Trees

Key property Value at node

Smaller values in left subtree Larger values in right subtree

Example X > Y X < Z

Y

X

Z

Admission.edhole.com

Page 6: Mca admission in india

Binary Search Trees Examples

Binary search trees

Not a binary search tree

5

10

30

2 25 45

5

10

45

2 25 30

5

10

30

2

25

45

Admission.edhole.com

Page 7: Mca admission in india

Binary Tree Implementation

Class Node {int data; // Could be int, a class, etcNode *left, *right; // null if empty

void insert ( int data ) { … }void delete ( int data ) { … }Node *find ( int data ) { … }

…}

Admission.edhole.com

Page 8: Mca admission in india

Iterative Search of Binary TreeNode *Find( Node *n, int key) {

while (n != NULL) { if (n->data == key) // Found it

return n;if (n->data > key) // In left subtree n = n->left;else // In right subtree n = n->right;

} return null;

}Node * n = Find( root, 5);Admission.edhole.com

Page 9: Mca admission in india

Recursive Search of Binary TreeNode *Find( Node *n, int key) {

if (n == NULL) // Not foundreturn( n );

else if (n->data == key) // Found itreturn( n );

else if (n->data > key) // In left subtreereturn Find( n->left, key );

else // In right subtreereturn Find( n->right, key );

}Node * n = Find( root, 5);Admission.edhole.com

Page 10: Mca admission in india

Example Binary Searches Find ( root, 2 )

5

10

30

2 25 45

5

10

30

2

25

45

10 > 2, left

5 > 2, left

2 = 2, found

5 > 2, left

2 = 2, found

root

Admission.edhole.com

Page 11: Mca admission in india

Example Binary Searches Find (root, 25 )

5

10

30

2 25 45

5

10

30

2

25

45

10 < 25, right

30 > 25, left

25 = 25, found

5 < 25, right

45 > 25, left

30 > 25, left

10 < 25, right

25 = 25, found

Admission.edhole.com

Page 12: Mca admission in india

Types of Binary Trees Degenerate – only one child Complete – always two children Balanced – “mostly” two children

more formal definitions exist, above are intuitive ideas

Degenerate binary tree

Balanced binary tree

Complete binary tree

Admission.edhole.com

Page 13: Mca admission in india

Binary Trees Properties Degenerate

Height = O(n) for n nodes

Similar to linked list

Balanced Height = O( log(n) )

for n nodes Useful for searches

Degenerate binary tree

Balanced binary tree

Admission.edhole.com

Page 14: Mca admission in india

Binary Search Properties

Time of search Proportional to height of tree Balanced binary tree

O( log(n) ) time Degenerate tree

O( n ) time Like searching linked list / unsorted array

Admission.edhole.com

Page 15: Mca admission in india

Binary Search Tree Construction How to build & maintain binary trees?

Insertion Deletion

Maintain key property (invariant) Smaller values in left subtree Larger values in right subtree

Admission.edhole.com

Page 16: Mca admission in india

Binary Search Tree – Insertion Algorithm

1. Perform search for value X

2. Search will end at node Y (if X not in tree)

3. If X < Y, insert new leaf X as new left subtree for Y

4. If X > Y, insert new leaf X as new right subtree for Y

Observations O( log(n) ) operation for balanced tree Insertions may unbalance treeAdmission.edhole.com

Page 17: Mca admission in india

Example Insertion

Insert ( 20 )

5

10

30

2 25 45

10 < 20, right

30 > 20, left

25 > 20, left

Insert 20 on left

20Admission.edhole.com

Page 18: Mca admission in india

Binary Search Tree – Deletion Algorithm

1. Perform search for value X

2. If X is a leaf, delete X

3. Else // must delete internal nodea) Replace with largest value Y on left subtree OR smallest value Z on right subtreeb) Delete replacement value (Y or Z) from subtree

Observation O( log(n) ) operation for balanced tree Deletions may unbalance treeAdmission.edhole.com

Page 19: Mca admission in india

Example Deletion (Leaf)

Delete ( 25 )

5

10

30

2 25 45

10 < 25, right

30 > 25, left

25 = 25, delete

5

10

30

2 45

Admission.edhole.com

Page 20: Mca admission in india

Example Deletion (Internal Node) Delete ( 10 )

5

10

30

2 25 45

5

5

30

2 25 45

2

5

30

2 25 45

Replacing 10 with largest value in left

subtree

Replacing 5 with largest value in left

subtree

Deleting leaf

Admission.edhole.com

Page 21: Mca admission in india

Example Deletion (Internal Node) Delete ( 10 )

5

10

30

2 25 45

5

25

30

2 25 45

5

25

30

2 45

Replacing 10 with smallest value in right

subtree

Deleting leaf Resulting tree

Admission.edhole.com

Page 22: Mca admission in india

Balanced Search Trees

Kinds of balanced binary search trees height balanced vs. weight balanced “Tree rotations” used to maintain balance on insert/delete

Non-binary search trees 2/3 trees

each internal node has 2 or 3 children all leaves at same depth (height balanced)

B-trees Generalization of 2/3 trees Each internal node has between k/2 and k children

Each node has an array of pointers to children Widely used in databases

Admission.edhole.com

Page 23: Mca admission in india

Other (Non-Search) Trees

Parse trees Convert from textual representation to tree

representation Textual program to tree

Used extensively in compilers Tree representation of data

E.g. HTML data can be represented as a tree called DOM (Document Object Model) tree

XML Like HTML, but used to represent data Tree structured

Admission.edhole.com

Page 24: Mca admission in india

Parse Trees Expressions, programs, etc can be

represented by tree structures E.g. Arithmetic Expression Tree A-(C/5 * 2) + (D*5 % 4)

+ - %

A * * 4

/ 2 D 5

C 5Admission.edhole.com

Page 25: Mca admission in india

Tree Traversal

Goal: visit every node of a tree in-order traversal

void Node::inOrder () { if (left != NULL) { cout << “(“; left->inOrder(); cout << “)”; } cout << data << endl; if (right != NULL) right->inOrder()} Output: A – C / 5 * 2 + D * 5 % 4

To disambiguate: print brackets

+ - %

A * * 4

/ 2 D 5

C 5

Admission.edhole.com

Page 26: Mca admission in india

Tree Traversal (contd.)

pre-order and post-order:void Node::preOrder () { cout << data << endl; if (left != NULL) left->preOrder (); if (right != NULL) right->preOrder ();}

void Node::postOrder () { if (left != NULL) left->preOrder (); if (right != NULL) right->preOrder (); cout << data << endl;}

Output: + - A * / C 5 2 % * D 5 4

Output: A C 5 / 2 * - D 5 * 4 % +

+ - %

A * * 4

/ 2 D 5

C 5

Admission.edhole.com

Page 27: Mca admission in india

XML Data Representation

E.g. <dependency> <object>sample1.o</object> <depends>sample1.cpp</depends> <depends>sample1.h</depends> <rule>g++ -c sample1.cpp</rule> </dependency>

Tree representation

dependency

object depends

sample1.o sample1.cpp

depends

sample1.h

rule

g++ -c …Admission.edhole.com

Page 28: Mca admission in india

Graph Data Structures E.g: Airline networks, road networks, electrical circuits Nodes and Edges E.g. representation: class Node

Stores name stores pointers to all adjacent nodes

i,e. edge == pointer To store multiple pointers: use array or linked list

Ahm’bad

Delhi

Mumbai

Calcutta

ChennaiMaduraiAdmission.edhole.com