Mca admission in india
description
Transcript of Mca admission in india
![Page 1: Mca admission in india](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/1.jpg)
MBA Admission in India
By:
Admission.edhole.com
![Page 2: Mca admission in india](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/2.jpg)
Tree Data Structures
S. Sudarshan
Based partly on material from Fawzi Emad & Chau-Wen Tseng
Admission.edhole.com
![Page 3: Mca admission in india](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/3.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/4.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/9.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/11.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/18.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/19.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/21.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/22.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/24.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/25.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/26.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/27.jpg)
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](https://reader035.fdocuments.net/reader035/viewer/2022062614/546944ceaf795939568b5831/html5/thumbnails/28.jpg)
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