SlideShare uma empresa Scribd logo
1 de 61
Tree
So far we discussed Linear data structures like
2
stack
Introduction to
trees
3
• So far we have discussed mainly linear data structures – strings, arrays,
lists, stacks and queues
• Now we will discuss a non-linear data structure called tree.
• Trees are mainly used to represent data containing a hierarchical
relationship between elements, for example, records, family trees and
table of contents.
• Consider a parent-child relationship
4
Tree
5
• A tree is an abstract model of a hierarchical structure that consists of
nodes with a parent-child relationship.
• Tree is a sequence of nodes
• There is a starting node known as a root node
• Every node other than the root has a parent node.
• Nodes may have any number of children
6
7
Some Key Terms:
8
• Root − Node at the top of the tree is called root.
• Parent − Any node except root node has one edge upward to a node called parent.
• Child − Node below a given node connected by its edge downward is called its child node.
• Sibling – Child of same node are called siblings
• Leaf − Node which does not have any child node is called leaf node.
• Sub tree − Sub tree represents descendants of a node.
• Levels − Level of a node represents the generation of a node. If root node is at level 0, then its next child node
is at level 1, its grandchild is at level 2 and so on.
• keys − Key represents a value of a node based on which a search operation is to be carried out for a node.
Some Key
Terms:
9
• Degree of a node:
• The degree of a node is the number of children of that node
• Degree of a Tree:
• The degree of a tree is the maximum degree of nodes in a given tree
• Path:
• It is the sequence of consecutive edges from source node to destination node.
• Height of a node:
• The height of a node is the max path length form that node to a leaf node.
• Height of a tree:
• The height of a tree is the height of the root
• Depth of a tree:
• Depth of a tree is the max level of any leaf in the tree
10
Characteristics of
trees
11
• Non-linear data structure
• Combines advantages of an ordered array
• Searching as fast as in ordered array
• Insertion and deletion as fast as in linked list
• Simple and fast
Applicati
on
12
• Directory structure of a file store
• Structure of an arithmetic expressions
• Used in almost every 3D video game to determine what objects need to be
rendered.
• Used in almost every high-bandwidth router for storing router-tables.
• used in compression algorithms, such as those used by the .jpeg and .mp3 file-
formats.
FOR Further detail Click Here
Introduction To Binary
Trees
13
• A binary tree, is a tree in which no node can have more than two
children.
• Consider a binary tree T, here ‘A’ is the root node of the binary tree T.
• ‘B’ is the left child of ‘A’ and ‘C’ is the right
child of ‘A’
• i.e A is a father of B and C.
• The node B and C are called siblings.
• Nodes D,H,I,F,J are leaf node
Binary
Trees
14
• A binary tree, T, is either empty or such that
III.
I. T has a special node called the root node
II. T has two sets of nodes LT and RT, called the left subtree and right subtree of
T, respectively.
LT and RT are binary trees.
Binary
Tree
15
• A binary tree is a finite set of elements that are either empty or is
partitioned into three disjoint subsets.
• The first subset contains a single element called the root of the tree.
• The other two subsets are themselves binary trees called the left and right
sub-trees of the original tree.
• A left or right sub-tree can be empty.
• Each element of a binary tree is called a node of the tree.
The following figure shows a binary tree with 9 nodes where A is the root
16
Binary Tree
17
• The root node of this binary tree is A.
• The left sub tree of the root node, which we denoted by LA, is the set
LA = {B,D,E,G} and the right sub tree of the root node, RA is the set
RA={C,F,H}
• The root node of LA is node B, the root node of RA is C and so on
Binary Tree
Properties
18
• If a binary tree contains m nodes at level L, it contains at most 2m
nodes at level L+1
• Since a binary tree can contain at most 1 node at level 0 (the root), it
contains at most 2L nodes at level L.
Types of Binary
Tree
19
• Complete binary tree
• Strictly binary tree
• Almost complete binary tree
Strictly binary
tree
20
• If every non-leaf node in a binary tree has nonempty left and right sub-trees, then
such a tree is called a strictly binary tree.
• Or, to put it another way, all of the nodes in a strictly binary tree are of degree zero
or two, never degree one.
• A strictly binary tree with
N leaves always contains 2N – 1 nodes.
Complete binary
tree
21
• A complete binary tree is a binary tree in which every level, except possibly the last, is completely
filled, and all nodes are as far left as possible.
• A complete binary tree of depth d is called strictly binary tree if all of whose leaves are at level d.
• A complete binary tree has 2d nodes at every depth d and 2d -1 non leaf nodes
Almost complete binary
tree
22
• An almost complete binary tree is a tree where for a right child, there is always a
left child, but for a left child there may not be a right child.
23
24
Tree
traversal
25
• Traversal is a process to visit all the nodes of a tree and may print their
values too.
• All nodes are connected via edges (links) we always start from the root
(head) node.
• There are three ways which we use to traverse a tree
• In-order Traversal
• Pre-order Traversal
• Post-order Traversal
• Generally we traverse a tree to search or locate given item or key in the tree
or to print all the values it contains.
Pre-order, In-order, Post-
order
26
• Pre-order
<root><left><right>
• In-order
<left><root><right>
• Post-order
<left><right><root>
Pre-order
Traversal
27
• The preorder traversal of a nonempty binary tree is defined as follows:
• Visit the root node
• Traverse the left sub-tree in preorder
• Traverse the right sub-tree in preorder
Pre-order
Pseudocode
28
struct Node{
char data;
Node *left;
Node *right;
}
void Preorder(Node *root)
{
if (root==NULL) return;
printf (“%c”, root->data);
Preorder(root->left);
Preorder(root->right);
}
In-order
traversal
29
• The in-order traversal of a nonempty binary tree is defined as follows:
• Traverse the left sub-tree in in-order
• Visit the root node
• Traverse the right sub-tree in inorder
• The in-order traversal output
of the given tree is
H D I B E A F C G
In-order
Pseudocode
30
struct Node{
char data;
Node *left;
Node *right;
}
void Inorder(Node *root)
{
if (root==NULL) return;
Inorder(root->left);
printf (“%c”, root->data);
Inorder(root->right);
}
Post-order
traversal
31
• The in-order traversal of a nonempty binary tree is defined as follows:
• Traverse the left sub-tree in post-order
• Traverse the right sub-tree in post-order
• Visit the root node
• The in-order traversal output
of the given tree is
H I D E B F G C A
Post-order
Pseudocode
32
struct Node{
char data;
Node *left;
Node *right;
}
void Postorder(Node *root)
{
if (root==NULL) return;
Postorder(root->left);
Postorder(root->right);
printf (“%c”, root->data);
}
Binary Search
Tree(BST)
33
• A binary search tree (BST) is a binary tree that is either empty or in
which every node contains a key (value) and satisfies the following
conditions:
• All keys in the left sub-tree of the root are smaller than the key in the root
node
• All keys in the right sub-tree of the root are greater than the key in the root
node
• The left and right sub-trees of the root are again binary search trees
Binary Search
Tree(BST)
34
Binary Search
Tree(BST)
35
• A binary search tree is basically a binary tree, and therefore it can be
traversed in inorder, preorder and postorder.
• If we traverse a binary search tree in inorder and print the identifiers
contained in the nodes of the tree, we get a sorted list of identifiers in
ascending order.
Why Binary Search
Tree?
36
• Let us consider a problem of searching a list.
• If a list is ordered searching becomes faster if we use contiguous
list(array).
• But if we need to make changes in the list, such as inserting new
entries or deleting old entries, (SLOWER!!!!) because insertion and
deletion in a contiguous list requires moving many of the entries every
time.
Why Binary Search
Tree?
37
• So we may think of using a linked list because it permits insertion and
deletion to be carried out by adjusting only few pointers.
• But in an n-linked list, there is no way to move through the list other
than one node at a time, permitting only sequential access.
• Binary trees provide an excellent solution to this problem. By making
the entries of an ordered list into the nodes of a binary search tree, we
find that we can search for a key in O(logn)
Binary Search
Tree(BST)
38
Time Complexity
Array Linked List BST
Search O(n) O(n) O(logn)
Insert O(1) O(1) O(logn)
Remove O(n) O(n) O(logn)
Operations on Binary Search
Tree (BST)
39
• Following operations can be done in BST:
• Search(k, T): Search for key k in the tree T. If k is found in some node of tree
then return true otherwise return false.
• Insert(k, T): Insert a new node with value k in the info field in the tree T such
that the property of BST is maintained.
• Delete(k, T):Delete a node with value k in the info field from the tree T such
that the property of BST is maintained.
• FindMin(T), FindMax(T): Find minimum and maximum element from the
given nonempty BST.
Searching Through
The BST
40
• Compare the target value with the element in the root node
 If the target value is equal, the search is successful.
If target value is less, search the left subtree.
If target value is greater, search the right subtree.
If the subtree is empty, the search is unsuccessful.
41
Insertion of a node in
BST
42
• To insert a new item in a tree, we must first verify that its key is different
from those of existing elements.
• If a new value is less, than the current node's value, go to the left subtree,
else go to the right subtree.
• Following this simple rule, the algorithm reaches a node, which has no left
or right subtree.
• By the moment a place for insertion is found, we can say for sure, that a
new value has no duplicate in the tree.
Algorithm for insertion
in BST
43
• Check, whether value in current node and a new value are equal. If so,
duplicate is found. Otherwise,
• if a new value is less, than the node's value:
• if a current node has no left child, place for insertion has been found;
• otherwise, handle the left child with the same algorithm.
• if a new value is greater, than the node's value:
• if a current node has no right child, place for insertion has been found;
• otherwise, handle the right child with the same algorithm.
44
45
Deleting a node from
the BST
46
• While deleting a node from BST, there may be three cases:
1. The node to be deleted may be a leaf node:
• In this case simply delete a node and set null pointer to its parents those side
at which this deleted node exist.
Deleting a node from
the BST
47
2. The node to be deleted has one child
• In this case the child of the node to be deleted is appended to its parent node.
Suppose node to be deleted is 18
Deleting a node from the BST
Ashim Lamichhane 48
49
50
Huffman
Algorithm
51
• Huffman algorithm is a method for building an extended binary tree
with a minimum weighted path length from a set of given weights.
• This is a method for the construction of minimum redundancy codes.
• Applicable to many forms of data transmission
• multimedia codecs such as JPEG and MP3
Huffman
Algorithm
52
• 1951, David Huffman found the “most efficient method of representing
numbers, letters, and other symbols using binary code”. Now standard
method used for data compression.
• In Huffman Algorithm, a set of nodes assigned with values if fed to the
algorithm. Initially 2 nodes are considered and their sum forms their parent
node.
• When a new element is considered, it can be added to the tree.
• Its value and the previously calculated sum of the tree are used to form the
new node which in turn becomes their parent.
Huffman
Algorithm
53
• Let us take any four characters and their frequencies, and sort this list by
increasing frequency.
• Since to represent 4 characters the 2 bit is sufficient thus take initially two
bits for each character this is called fixed length character.
• Here before using Huffman algorithm the total number of bits required is:
nb=3*2+5*2+7*2+10*2 =06+10+14+20 =50bits
character frequencies
E 10
T 7
O 5
A 3
Character frequencies code
A 3 00
O 5 01
E 7 10
T 10 11
sort
Ashim Lamichhane 54
• Thus after using Huffman algorithm the total number of bits required is
nb=3*3+5*3+7*2+10*1 =09+15+14+10 =48bits
i.e
(50-48)/50*100%=4%
Since in this small example we save about 4% space by using Huffman algorithm. If we take large
example with a lot of characters and their frequencies we can save a lot of space
Character frequencies code
A 3 110
O 5 111
T 7 10
E 10 0
55
Huffman Algorithm
56
• Lets say you have a set of numbers and their frequency of use and
want to create a huffman encoding for them
Value Frequencies
1 5
2 7
3 10
4 15
5 20
6 45
Huffman
Algorithm
57
• Creating a Huffman tree is simple. Sort this list by frequency and make the two-lowest elements
into leaves, creating a parent node with a frequency that is the sum of the two lower element's
frequencies:
12:*
/ 
5:1 7:2
• The two elements are removed from the list and the new parent node, with frequency 12, is
inserted into the list by frequency. So now the list, sorted by frequency, is:
10:3
12:*
15:4
20:5
45:6
Huffman
Algorithm
58
• You then repeat the loop, combining the two lowest elements. This results in:
22:*
/ 
10:3 12:*
/ 
5:1 7:2
• The two elements are removed from the list and the new parent node, with frequency 12, is
inserted into the list by frequency. So now the list, sorted by frequency, is:
15:4
20:5
22: *
45:6
Huffman
Algorithm
59
Assignme
nts
60
• Slides at myblog
http://www.ashimlamichhane.com.np/2016/07/tree-slide-for-data-
structure-and-algorithm/
• Assignments at github
https://github.com/ashim888/dataStructureAndAlgorithm/tree/dev/As
signments/assignment_7
Referen
ce
61
• https://www.siggraph.org/education/materials/HyperGraph/video/mp
eg/mpegfaq/huffman_tutorial.html
• https://en.wikipedia.org/wiki/Binary_search_tree
• https://www.cs.swarthmore.edu/~newhall/unixhelp/Java_bst.pdf
• https://www.cs.usfca.edu/~galles/visualization/BST.html
• https://www.cs.rochester.edu/~gildea/csc282/slides/C12-bst.pdf
• http://www.tutorialspoint.com/data_structures_algorithms/tree_data
_structure.htm

Mais conteúdo relacionado

Semelhante a tree-160731205832.pptx

Bca ii dfs u-3 tree and graph
Bca  ii dfs u-3 tree and graphBca  ii dfs u-3 tree and graph
Bca ii dfs u-3 tree and graphRai University
 
B tree ,B plus and graph
B tree ,B plus and graph B tree ,B plus and graph
B tree ,B plus and graph RaaviKapoor
 
Bsc cs ii dfs u-3 tree and graph
Bsc cs  ii dfs u-3 tree and graphBsc cs  ii dfs u-3 tree and graph
Bsc cs ii dfs u-3 tree and graphRai University
 
Mca iii dfs u-4 tree and graph
Mca iii dfs u-4 tree and graphMca iii dfs u-4 tree and graph
Mca iii dfs u-4 tree and graphRai University
 
358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10sumitbardhan
 
Data structures and Algorithm analysis_Lecture4.pptx
Data structures and Algorithm analysis_Lecture4.pptxData structures and Algorithm analysis_Lecture4.pptx
Data structures and Algorithm analysis_Lecture4.pptxAhmedEldesoky24
 
BINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.pptBINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.pptSeethaDinesh
 

Semelhante a tree-160731205832.pptx (20)

DSA-Unit-2.pptx
DSA-Unit-2.pptxDSA-Unit-2.pptx
DSA-Unit-2.pptx
 
Tree.pptx
Tree.pptxTree.pptx
Tree.pptx
 
Tree chapter
Tree chapterTree chapter
Tree chapter
 
Binary tree
Binary treeBinary tree
Binary tree
 
Trees
TreesTrees
Trees
 
Unit III.ppt
Unit III.pptUnit III.ppt
Unit III.ppt
 
Unit 6 tree
Unit   6 treeUnit   6 tree
Unit 6 tree
 
Bca ii dfs u-3 tree and graph
Bca  ii dfs u-3 tree and graphBca  ii dfs u-3 tree and graph
Bca ii dfs u-3 tree and graph
 
B tree ,B plus and graph
B tree ,B plus and graph B tree ,B plus and graph
B tree ,B plus and graph
 
Bsc cs ii dfs u-3 tree and graph
Bsc cs  ii dfs u-3 tree and graphBsc cs  ii dfs u-3 tree and graph
Bsc cs ii dfs u-3 tree and graph
 
Mca iii dfs u-4 tree and graph
Mca iii dfs u-4 tree and graphMca iii dfs u-4 tree and graph
Mca iii dfs u-4 tree and graph
 
BINARY SEARCH TREE
BINARY SEARCH TREEBINARY SEARCH TREE
BINARY SEARCH TREE
 
Tree
TreeTree
Tree
 
Module - 5_Trees.pdf
Module - 5_Trees.pdfModule - 5_Trees.pdf
Module - 5_Trees.pdf
 
358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10358 33 powerpoint-slides_10-trees_chapter-10
358 33 powerpoint-slides_10-trees_chapter-10
 
Data structures and Algorithm analysis_Lecture4.pptx
Data structures and Algorithm analysis_Lecture4.pptxData structures and Algorithm analysis_Lecture4.pptx
Data structures and Algorithm analysis_Lecture4.pptx
 
BINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.pptBINARY TREE REPRESENTATION.ppt
BINARY TREE REPRESENTATION.ppt
 
Data Structures 5
Data Structures 5Data Structures 5
Data Structures 5
 
Unit 5 Tree.pptx
Unit 5 Tree.pptxUnit 5 Tree.pptx
Unit 5 Tree.pptx
 
Tree traversal techniques
Tree traversal techniquesTree traversal techniques
Tree traversal techniques
 

Mais de MouDhara1

datacommunicationnetworking-161025074805.pptx
datacommunicationnetworking-161025074805.pptxdatacommunicationnetworking-161025074805.pptx
datacommunicationnetworking-161025074805.pptxMouDhara1
 
06 Recursion in C.pptx
06 Recursion in C.pptx06 Recursion in C.pptx
06 Recursion in C.pptxMouDhara1
 
lecture-i-trees.ppt
lecture-i-trees.pptlecture-i-trees.ppt
lecture-i-trees.pptMouDhara1
 
JSP-Servlet.ppt
JSP-Servlet.pptJSP-Servlet.ppt
JSP-Servlet.pptMouDhara1
 
09 Structures in C.pptx
09 Structures in C.pptx09 Structures in C.pptx
09 Structures in C.pptxMouDhara1
 
Chapter 12 - Heaps.ppt
Chapter 12 - Heaps.pptChapter 12 - Heaps.ppt
Chapter 12 - Heaps.pptMouDhara1
 
04_Recurrences_1.ppt
04_Recurrences_1.ppt04_Recurrences_1.ppt
04_Recurrences_1.pptMouDhara1
 
javascript12.pptx
javascript12.pptxjavascript12.pptx
javascript12.pptxMouDhara1
 
Linked list.pptx
Linked list.pptxLinked list.pptx
Linked list.pptxMouDhara1
 
For Client vs.pptx
For Client vs.pptxFor Client vs.pptx
For Client vs.pptxMouDhara1
 
Form tag.pptx
Form tag.pptxForm tag.pptx
Form tag.pptxMouDhara1
 
Web technology.pptx
Web technology.pptxWeb technology.pptx
Web technology.pptxMouDhara1
 
web tech.pptx
web tech.pptxweb tech.pptx
web tech.pptxMouDhara1
 
Introduction to Data Structure.pptx
Introduction to Data Structure.pptxIntroduction to Data Structure.pptx
Introduction to Data Structure.pptxMouDhara1
 

Mais de MouDhara1 (20)

ppt_dcn.pdf
ppt_dcn.pdfppt_dcn.pdf
ppt_dcn.pdf
 
datacommunicationnetworking-161025074805.pptx
datacommunicationnetworking-161025074805.pptxdatacommunicationnetworking-161025074805.pptx
datacommunicationnetworking-161025074805.pptx
 
06 Recursion in C.pptx
06 Recursion in C.pptx06 Recursion in C.pptx
06 Recursion in C.pptx
 
lecture-i-trees.ppt
lecture-i-trees.pptlecture-i-trees.ppt
lecture-i-trees.ppt
 
JSP-Servlet.ppt
JSP-Servlet.pptJSP-Servlet.ppt
JSP-Servlet.ppt
 
09 Structures in C.pptx
09 Structures in C.pptx09 Structures in C.pptx
09 Structures in C.pptx
 
Chapter 12 - Heaps.ppt
Chapter 12 - Heaps.pptChapter 12 - Heaps.ppt
Chapter 12 - Heaps.ppt
 
Servlet.ppt
Servlet.pptServlet.ppt
Servlet.ppt
 
DTD1.pptx
DTD1.pptxDTD1.pptx
DTD1.pptx
 
04_Recurrences_1.ppt
04_Recurrences_1.ppt04_Recurrences_1.ppt
04_Recurrences_1.ppt
 
STACK1.pptx
STACK1.pptxSTACK1.pptx
STACK1.pptx
 
queue.pptx
queue.pptxqueue.pptx
queue.pptx
 
javascript12.pptx
javascript12.pptxjavascript12.pptx
javascript12.pptx
 
Linked list.pptx
Linked list.pptxLinked list.pptx
Linked list.pptx
 
For Client vs.pptx
For Client vs.pptxFor Client vs.pptx
For Client vs.pptx
 
Form tag.pptx
Form tag.pptxForm tag.pptx
Form tag.pptx
 
Web technology.pptx
Web technology.pptxWeb technology.pptx
Web technology.pptx
 
cse.pptx
cse.pptxcse.pptx
cse.pptx
 
web tech.pptx
web tech.pptxweb tech.pptx
web tech.pptx
 
Introduction to Data Structure.pptx
Introduction to Data Structure.pptxIntroduction to Data Structure.pptx
Introduction to Data Structure.pptx
 

Último

Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSRajkumarAkumalla
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 

Último (20)

Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
(RIA) Call Girls Bhosari ( 7001035870 ) HI-Fi Pune Escorts Service
 
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICSHARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
HARDNESS, FRACTURE TOUGHNESS AND STRENGTH OF CERAMICS
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 

tree-160731205832.pptx

  • 2. So far we discussed Linear data structures like 2 stack
  • 3. Introduction to trees 3 • So far we have discussed mainly linear data structures – strings, arrays, lists, stacks and queues • Now we will discuss a non-linear data structure called tree. • Trees are mainly used to represent data containing a hierarchical relationship between elements, for example, records, family trees and table of contents. • Consider a parent-child relationship
  • 4. 4
  • 5. Tree 5 • A tree is an abstract model of a hierarchical structure that consists of nodes with a parent-child relationship. • Tree is a sequence of nodes • There is a starting node known as a root node • Every node other than the root has a parent node. • Nodes may have any number of children
  • 6. 6
  • 7. 7
  • 8. Some Key Terms: 8 • Root − Node at the top of the tree is called root. • Parent − Any node except root node has one edge upward to a node called parent. • Child − Node below a given node connected by its edge downward is called its child node. • Sibling – Child of same node are called siblings • Leaf − Node which does not have any child node is called leaf node. • Sub tree − Sub tree represents descendants of a node. • Levels − Level of a node represents the generation of a node. If root node is at level 0, then its next child node is at level 1, its grandchild is at level 2 and so on. • keys − Key represents a value of a node based on which a search operation is to be carried out for a node.
  • 9. Some Key Terms: 9 • Degree of a node: • The degree of a node is the number of children of that node • Degree of a Tree: • The degree of a tree is the maximum degree of nodes in a given tree • Path: • It is the sequence of consecutive edges from source node to destination node. • Height of a node: • The height of a node is the max path length form that node to a leaf node. • Height of a tree: • The height of a tree is the height of the root • Depth of a tree: • Depth of a tree is the max level of any leaf in the tree
  • 10. 10
  • 11. Characteristics of trees 11 • Non-linear data structure • Combines advantages of an ordered array • Searching as fast as in ordered array • Insertion and deletion as fast as in linked list • Simple and fast
  • 12. Applicati on 12 • Directory structure of a file store • Structure of an arithmetic expressions • Used in almost every 3D video game to determine what objects need to be rendered. • Used in almost every high-bandwidth router for storing router-tables. • used in compression algorithms, such as those used by the .jpeg and .mp3 file- formats. FOR Further detail Click Here
  • 13. Introduction To Binary Trees 13 • A binary tree, is a tree in which no node can have more than two children. • Consider a binary tree T, here ‘A’ is the root node of the binary tree T. • ‘B’ is the left child of ‘A’ and ‘C’ is the right child of ‘A’ • i.e A is a father of B and C. • The node B and C are called siblings. • Nodes D,H,I,F,J are leaf node
  • 14. Binary Trees 14 • A binary tree, T, is either empty or such that III. I. T has a special node called the root node II. T has two sets of nodes LT and RT, called the left subtree and right subtree of T, respectively. LT and RT are binary trees.
  • 15. Binary Tree 15 • A binary tree is a finite set of elements that are either empty or is partitioned into three disjoint subsets. • The first subset contains a single element called the root of the tree. • The other two subsets are themselves binary trees called the left and right sub-trees of the original tree. • A left or right sub-tree can be empty. • Each element of a binary tree is called a node of the tree.
  • 16. The following figure shows a binary tree with 9 nodes where A is the root 16
  • 17. Binary Tree 17 • The root node of this binary tree is A. • The left sub tree of the root node, which we denoted by LA, is the set LA = {B,D,E,G} and the right sub tree of the root node, RA is the set RA={C,F,H} • The root node of LA is node B, the root node of RA is C and so on
  • 18. Binary Tree Properties 18 • If a binary tree contains m nodes at level L, it contains at most 2m nodes at level L+1 • Since a binary tree can contain at most 1 node at level 0 (the root), it contains at most 2L nodes at level L.
  • 19. Types of Binary Tree 19 • Complete binary tree • Strictly binary tree • Almost complete binary tree
  • 20. Strictly binary tree 20 • If every non-leaf node in a binary tree has nonempty left and right sub-trees, then such a tree is called a strictly binary tree. • Or, to put it another way, all of the nodes in a strictly binary tree are of degree zero or two, never degree one. • A strictly binary tree with N leaves always contains 2N – 1 nodes.
  • 21. Complete binary tree 21 • A complete binary tree is a binary tree in which every level, except possibly the last, is completely filled, and all nodes are as far left as possible. • A complete binary tree of depth d is called strictly binary tree if all of whose leaves are at level d. • A complete binary tree has 2d nodes at every depth d and 2d -1 non leaf nodes
  • 22. Almost complete binary tree 22 • An almost complete binary tree is a tree where for a right child, there is always a left child, but for a left child there may not be a right child.
  • 23. 23
  • 24. 24
  • 25. Tree traversal 25 • Traversal is a process to visit all the nodes of a tree and may print their values too. • All nodes are connected via edges (links) we always start from the root (head) node. • There are three ways which we use to traverse a tree • In-order Traversal • Pre-order Traversal • Post-order Traversal • Generally we traverse a tree to search or locate given item or key in the tree or to print all the values it contains.
  • 26. Pre-order, In-order, Post- order 26 • Pre-order <root><left><right> • In-order <left><root><right> • Post-order <left><right><root>
  • 27. Pre-order Traversal 27 • The preorder traversal of a nonempty binary tree is defined as follows: • Visit the root node • Traverse the left sub-tree in preorder • Traverse the right sub-tree in preorder
  • 28. Pre-order Pseudocode 28 struct Node{ char data; Node *left; Node *right; } void Preorder(Node *root) { if (root==NULL) return; printf (“%c”, root->data); Preorder(root->left); Preorder(root->right); }
  • 29. In-order traversal 29 • The in-order traversal of a nonempty binary tree is defined as follows: • Traverse the left sub-tree in in-order • Visit the root node • Traverse the right sub-tree in inorder • The in-order traversal output of the given tree is H D I B E A F C G
  • 30. In-order Pseudocode 30 struct Node{ char data; Node *left; Node *right; } void Inorder(Node *root) { if (root==NULL) return; Inorder(root->left); printf (“%c”, root->data); Inorder(root->right); }
  • 31. Post-order traversal 31 • The in-order traversal of a nonempty binary tree is defined as follows: • Traverse the left sub-tree in post-order • Traverse the right sub-tree in post-order • Visit the root node • The in-order traversal output of the given tree is H I D E B F G C A
  • 32. Post-order Pseudocode 32 struct Node{ char data; Node *left; Node *right; } void Postorder(Node *root) { if (root==NULL) return; Postorder(root->left); Postorder(root->right); printf (“%c”, root->data); }
  • 33. Binary Search Tree(BST) 33 • A binary search tree (BST) is a binary tree that is either empty or in which every node contains a key (value) and satisfies the following conditions: • All keys in the left sub-tree of the root are smaller than the key in the root node • All keys in the right sub-tree of the root are greater than the key in the root node • The left and right sub-trees of the root are again binary search trees
  • 35. Binary Search Tree(BST) 35 • A binary search tree is basically a binary tree, and therefore it can be traversed in inorder, preorder and postorder. • If we traverse a binary search tree in inorder and print the identifiers contained in the nodes of the tree, we get a sorted list of identifiers in ascending order.
  • 36. Why Binary Search Tree? 36 • Let us consider a problem of searching a list. • If a list is ordered searching becomes faster if we use contiguous list(array). • But if we need to make changes in the list, such as inserting new entries or deleting old entries, (SLOWER!!!!) because insertion and deletion in a contiguous list requires moving many of the entries every time.
  • 37. Why Binary Search Tree? 37 • So we may think of using a linked list because it permits insertion and deletion to be carried out by adjusting only few pointers. • But in an n-linked list, there is no way to move through the list other than one node at a time, permitting only sequential access. • Binary trees provide an excellent solution to this problem. By making the entries of an ordered list into the nodes of a binary search tree, we find that we can search for a key in O(logn)
  • 38. Binary Search Tree(BST) 38 Time Complexity Array Linked List BST Search O(n) O(n) O(logn) Insert O(1) O(1) O(logn) Remove O(n) O(n) O(logn)
  • 39. Operations on Binary Search Tree (BST) 39 • Following operations can be done in BST: • Search(k, T): Search for key k in the tree T. If k is found in some node of tree then return true otherwise return false. • Insert(k, T): Insert a new node with value k in the info field in the tree T such that the property of BST is maintained. • Delete(k, T):Delete a node with value k in the info field from the tree T such that the property of BST is maintained. • FindMin(T), FindMax(T): Find minimum and maximum element from the given nonempty BST.
  • 40. Searching Through The BST 40 • Compare the target value with the element in the root node  If the target value is equal, the search is successful. If target value is less, search the left subtree. If target value is greater, search the right subtree. If the subtree is empty, the search is unsuccessful.
  • 41. 41
  • 42. Insertion of a node in BST 42 • To insert a new item in a tree, we must first verify that its key is different from those of existing elements. • If a new value is less, than the current node's value, go to the left subtree, else go to the right subtree. • Following this simple rule, the algorithm reaches a node, which has no left or right subtree. • By the moment a place for insertion is found, we can say for sure, that a new value has no duplicate in the tree.
  • 43. Algorithm for insertion in BST 43 • Check, whether value in current node and a new value are equal. If so, duplicate is found. Otherwise, • if a new value is less, than the node's value: • if a current node has no left child, place for insertion has been found; • otherwise, handle the left child with the same algorithm. • if a new value is greater, than the node's value: • if a current node has no right child, place for insertion has been found; • otherwise, handle the right child with the same algorithm.
  • 44. 44
  • 45. 45
  • 46. Deleting a node from the BST 46 • While deleting a node from BST, there may be three cases: 1. The node to be deleted may be a leaf node: • In this case simply delete a node and set null pointer to its parents those side at which this deleted node exist.
  • 47. Deleting a node from the BST 47 2. The node to be deleted has one child • In this case the child of the node to be deleted is appended to its parent node. Suppose node to be deleted is 18
  • 48. Deleting a node from the BST Ashim Lamichhane 48
  • 49. 49
  • 50. 50
  • 51. Huffman Algorithm 51 • Huffman algorithm is a method for building an extended binary tree with a minimum weighted path length from a set of given weights. • This is a method for the construction of minimum redundancy codes. • Applicable to many forms of data transmission • multimedia codecs such as JPEG and MP3
  • 52. Huffman Algorithm 52 • 1951, David Huffman found the “most efficient method of representing numbers, letters, and other symbols using binary code”. Now standard method used for data compression. • In Huffman Algorithm, a set of nodes assigned with values if fed to the algorithm. Initially 2 nodes are considered and their sum forms their parent node. • When a new element is considered, it can be added to the tree. • Its value and the previously calculated sum of the tree are used to form the new node which in turn becomes their parent.
  • 53. Huffman Algorithm 53 • Let us take any four characters and their frequencies, and sort this list by increasing frequency. • Since to represent 4 characters the 2 bit is sufficient thus take initially two bits for each character this is called fixed length character. • Here before using Huffman algorithm the total number of bits required is: nb=3*2+5*2+7*2+10*2 =06+10+14+20 =50bits character frequencies E 10 T 7 O 5 A 3 Character frequencies code A 3 00 O 5 01 E 7 10 T 10 11 sort
  • 55. • Thus after using Huffman algorithm the total number of bits required is nb=3*3+5*3+7*2+10*1 =09+15+14+10 =48bits i.e (50-48)/50*100%=4% Since in this small example we save about 4% space by using Huffman algorithm. If we take large example with a lot of characters and their frequencies we can save a lot of space Character frequencies code A 3 110 O 5 111 T 7 10 E 10 0 55
  • 56. Huffman Algorithm 56 • Lets say you have a set of numbers and their frequency of use and want to create a huffman encoding for them Value Frequencies 1 5 2 7 3 10 4 15 5 20 6 45
  • 57. Huffman Algorithm 57 • Creating a Huffman tree is simple. Sort this list by frequency and make the two-lowest elements into leaves, creating a parent node with a frequency that is the sum of the two lower element's frequencies: 12:* / 5:1 7:2 • The two elements are removed from the list and the new parent node, with frequency 12, is inserted into the list by frequency. So now the list, sorted by frequency, is: 10:3 12:* 15:4 20:5 45:6
  • 58. Huffman Algorithm 58 • You then repeat the loop, combining the two lowest elements. This results in: 22:* / 10:3 12:* / 5:1 7:2 • The two elements are removed from the list and the new parent node, with frequency 12, is inserted into the list by frequency. So now the list, sorted by frequency, is: 15:4 20:5 22: * 45:6
  • 60. Assignme nts 60 • Slides at myblog http://www.ashimlamichhane.com.np/2016/07/tree-slide-for-data- structure-and-algorithm/ • Assignments at github https://github.com/ashim888/dataStructureAndAlgorithm/tree/dev/As signments/assignment_7
  • 61. Referen ce 61 • https://www.siggraph.org/education/materials/HyperGraph/video/mp eg/mpegfaq/huffman_tutorial.html • https://en.wikipedia.org/wiki/Binary_search_tree • https://www.cs.swarthmore.edu/~newhall/unixhelp/Java_bst.pdf • https://www.cs.usfca.edu/~galles/visualization/BST.html • https://www.cs.rochester.edu/~gildea/csc282/slides/C12-bst.pdf • http://www.tutorialspoint.com/data_structures_algorithms/tree_data _structure.htm