The document discusses various tree data structures and their terminology. It begins by defining a tree as a set of nodes connected in a parent-child relationship, with one root node and multiple disjoint subtree structures. Key terminology introduced includes root, child, parent, leaf nodes, siblings, ancestors, and height/depth. Binary trees are defined as having at most two children per node. Common traversal orders of trees - preorder, inorder, and postorder - are explained along with examples. Finally, algorithms for traversing binary trees using stacks are presented for preorder and inorder traversal.
This document discusses different tree and graph data structures and algorithms. It begins by defining trees and their key properties like nodes, roots, parents, children, levels. It then discusses binary trees and their representations. Next, it covers binary search trees, their properties and operations like search, insert, delete. It also discusses different tree traversals. Finally, it discusses heaps, graphs and their representations and operations.
The document discusses binary trees and binary search trees. It begins with definitions of tree, binary tree, and binary search tree. It describes the key properties and terminology used for trees including nodes, degrees, heights, paths, etc. It then covers various tree traversal methods like preorder, inorder and postorder traversal. Operations for binary search trees like searching, insertion and deletion of nodes are explained along with algorithms. Different representations of binary trees using arrays and linked lists are also presented.
The document discusses binary trees, including their memory representations (sequential and linked), tree traversals (pre-order, in-order, and post-order), and algorithms for traversing binary trees using stacks. Binary tree traversal algorithms include recursively visiting nodes in a certain order (pre-order visits root then left then right subtrees, etc.) or using a stack to simulate the recursion.
This document discusses binary trees and their traversal. It defines binary trees, their properties such as levels and degrees of nodes. It describes different types of binary trees like complete, skewed, etc. It also explains different traversal techniques like preorder, inorder and postorder traversals and provides algorithms to implement these traversals recursively as well as using stacks. Memory representations of binary trees like sequential and linked are also summarized.
The document discusses tree data structures and binary search trees. It defines key tree terminology like root, internal and leaf nodes. It explains tree traversal algorithms like preorder, inorder and postorder traversal using recursion and iteration. It also describes operations on binary search trees like searching, inserting and deleting nodes. The complexity of these BST operations is provided. Algorithms to find the inorder predecessor and successor of a node in a BST are presented.
The document discusses binary tree traversal methods. It defines key binary tree terminology like nodes, edges, root, and provides examples of different types of binary trees like strictly binary, complete, and almost complete binary trees. It also explains the three common traversal techniques for binary search trees - in-order, pre-order and post-order traversals - and provides pseudocode algorithms and examples for each traversal method.
This Presentation will Clear the idea of non linear Data Structure and implementation of Tree by using array and pointer and also Explain the concept of Binary Search Tree (BST) with example
This document discusses trees and binary trees. It defines key terminology like root, leaf nodes, internal nodes, and provides examples of different types of binary trees including full, complete, balanced, and binary search trees. It also covers different representations of binary trees using arrays and linked lists as well as common traversal techniques for binary trees like preorder, inorder and postorder traversal.
This document discusses binary trees and their representations and uses. It defines key terms related to binary trees like nodes, leaves, siblings, and levels. It describes different types of binary trees like complete and extended binary trees. It explains how to represent binary trees in memory using linked and sequential representations. It provides examples of how binary trees can be used to represent expressions and model tournaments. It also discusses algorithms for traversing binary trees in preorder, inorder and postorder sequences.
In computer science, tree traversal (also known as tree search) is a form of graph traversal and refers to the process of visiting (checking and/or updating) each node in a tree data structure, exactly once. Such traversals are classified by the order in which the nodes are visited. The following algorithms are described for a binary tree, but they may be generalized to other trees as well.
A binary tree is composed of nodes where each node contains a value and pointers to its left and right children. A binary tree traversal involves systematically visiting each node by traversing either breadth-first or depth-first. Breadth-first traversal visits nodes by level while depth-first traversal can be pre-order, in-order, or post-order depending on when the node is visited. Threaded binary trees reduce the number of null pointers by using them to point to other nodes for more efficient traversals.
The document discusses various methods for traversing binary trees, including pre-order, in-order, post-order, and level-order traversals. It also describes how to construct a binary tree from two traversal results, such as in-order and pre-order traversals. Key steps include using the pre-order sequence to identify the root node and using the in-order sequence to identify left and right subtrees.
1) The document is an assignment submission on data structures covering queues, linked lists, and trees.
2) It discusses the concepts of queues including FIFO operations, applications such as call centers, and implementations using arrays or linked lists.
3) Linked lists are described as dynamic structures that connect nodes through pointers and are used for stacks, queues, and graphs. Common types include singly, doubly, and circular linked lists.
4) Trees are hierarchical structures where each node has a maximum of two children. Binary trees, their terminology, types such as full and balanced binary trees, and advantages are outlined.
The document discusses trees and binary trees. It defines trees and binary trees, describes their terminology like root, leaf nodes, levels etc. It explains different representations of binary trees using arrays and linked lists. It also covers operations on binary search trees like insertion, deletion and searching. Tree traversals namely preorder, inorder and postorder are also explained.
The document discusses binary tree representation and traversal methods. It provides two main representations of binary trees - array and linked representations. It also describes different types of binary trees like full, complete, left-skewed, and right-skewed trees. The document then explains three common traversal techniques for binary trees - inorder, preorder, and postorder traversals. Algorithms and code snippets are given for each traversal. Finally, applications of binary tree traversals are discussed along with expression trees and converting infix to postfix notation using a stack.
The document discusses trees and binary trees. It defines key tree terminology like nodes, edges, root, leaf, etc. It explains properties of binary trees including full, complete, and binary search trees. It describes techniques for traversing binary trees including preorder, inorder and postorder traversal using recursion and stacks. Searching and insertion operations in binary search trees are also summarized.
B+ trees are an advanced form of self-balancing trees used for indexing in databases. They improve upon B-trees by only storing data pointers in the leaf nodes, allowing for faster searches. The structure has internal nodes forming multiple levels of indexing and leaf nodes containing all key values and data pointers linked together. This allows both direct and sequential access to stored records. Operations like searching, insertion, and deletion on a B+ tree involve traversing the tree to the appropriate leaf node and rebalancing the tree if needed to maintain its properties.
Class lecture of Data Structure and Algorithms and Python.
Stack, Queue, Tree, Python, Python Code, Computer Science, Data, Data Analysis, Machine Learning, Artificial Intellegence, Deep Learning, Programming, Information Technology, Psuedocide, Tree, pseudocode, Binary Tree, Binary Search Tree, implementation, Binary search, linear search, Binary search operation, real-life example of binary search, linear search operation, real-life example of linear search, example bubble sort, sorting, insertion sort example, stack implementation, queue implementation, binary tree implementation, priority queue, binary heap, binary heap implementation
This document discusses data structures and binary trees. It begins with basic terminology used in trees such as root, node, degree, levels, and traversal methods. It then explains different types of binary trees including strictly binary trees and complete binary trees. Next, it covers binary tree representations using arrays and linked lists. Finally, it discusses operations that can be performed on binary search trees including insertion, searching, deletion, and traversing nodes using preorder, inorder and postorder traversal methods.
This document contains information about trees and binary trees. It begins with definitions of trees, tree terminology like root, child, parent and traversals like preorder, inorder and postorder. It then discusses properties of binary trees like complete and full binary trees. Various representations of trees like linked and sequential representations are described. Finally, it provides examples of using trees to represent expressions and evaluating them using traversals.
This document provides an overview of data structures and trees. It defines trees and their properties like hierarchical structure, parent-child relationships, and representation using arrays and linked lists. It describes binary trees and their properties. It also covers binary search trees, operations on binary trees like insertion, deletion and traversal, and balanced binary search trees like AVL trees.
The document discusses different types of tree data structures, including general trees, binary trees, binary search trees, and their traversal methods. General trees allow nodes to have any number of children, while binary trees restrict nodes to having 0, 1, or 2 children. Binary search trees organize nodes so that all left descendants are less than the parent and all right descendants are greater. Common traversal orders for trees include preorder, inorder, and postorder, which differ in whether they process the root node before or after visiting child nodes.
The document discusses binary tree traversal methods. It defines key binary tree terminology like nodes, edges, root, and provides examples of different types of binary trees like strictly binary, complete, and almost complete binary trees. It also explains the three common traversal techniques for binary search trees - in-order, pre-order and post-order traversals - and provides pseudocode algorithms and examples for each traversal method.
This Presentation will Clear the idea of non linear Data Structure and implementation of Tree by using array and pointer and also Explain the concept of Binary Search Tree (BST) with example
This document discusses trees and binary trees. It defines key terminology like root, leaf nodes, internal nodes, and provides examples of different types of binary trees including full, complete, balanced, and binary search trees. It also covers different representations of binary trees using arrays and linked lists as well as common traversal techniques for binary trees like preorder, inorder and postorder traversal.
This document discusses binary trees and their representations and uses. It defines key terms related to binary trees like nodes, leaves, siblings, and levels. It describes different types of binary trees like complete and extended binary trees. It explains how to represent binary trees in memory using linked and sequential representations. It provides examples of how binary trees can be used to represent expressions and model tournaments. It also discusses algorithms for traversing binary trees in preorder, inorder and postorder sequences.
In computer science, tree traversal (also known as tree search) is a form of graph traversal and refers to the process of visiting (checking and/or updating) each node in a tree data structure, exactly once. Such traversals are classified by the order in which the nodes are visited. The following algorithms are described for a binary tree, but they may be generalized to other trees as well.
A binary tree is composed of nodes where each node contains a value and pointers to its left and right children. A binary tree traversal involves systematically visiting each node by traversing either breadth-first or depth-first. Breadth-first traversal visits nodes by level while depth-first traversal can be pre-order, in-order, or post-order depending on when the node is visited. Threaded binary trees reduce the number of null pointers by using them to point to other nodes for more efficient traversals.
The document discusses various methods for traversing binary trees, including pre-order, in-order, post-order, and level-order traversals. It also describes how to construct a binary tree from two traversal results, such as in-order and pre-order traversals. Key steps include using the pre-order sequence to identify the root node and using the in-order sequence to identify left and right subtrees.
1) The document is an assignment submission on data structures covering queues, linked lists, and trees.
2) It discusses the concepts of queues including FIFO operations, applications such as call centers, and implementations using arrays or linked lists.
3) Linked lists are described as dynamic structures that connect nodes through pointers and are used for stacks, queues, and graphs. Common types include singly, doubly, and circular linked lists.
4) Trees are hierarchical structures where each node has a maximum of two children. Binary trees, their terminology, types such as full and balanced binary trees, and advantages are outlined.
The document discusses trees and binary trees. It defines trees and binary trees, describes their terminology like root, leaf nodes, levels etc. It explains different representations of binary trees using arrays and linked lists. It also covers operations on binary search trees like insertion, deletion and searching. Tree traversals namely preorder, inorder and postorder are also explained.
The document discusses binary tree representation and traversal methods. It provides two main representations of binary trees - array and linked representations. It also describes different types of binary trees like full, complete, left-skewed, and right-skewed trees. The document then explains three common traversal techniques for binary trees - inorder, preorder, and postorder traversals. Algorithms and code snippets are given for each traversal. Finally, applications of binary tree traversals are discussed along with expression trees and converting infix to postfix notation using a stack.
The document discusses trees and binary trees. It defines key tree terminology like nodes, edges, root, leaf, etc. It explains properties of binary trees including full, complete, and binary search trees. It describes techniques for traversing binary trees including preorder, inorder and postorder traversal using recursion and stacks. Searching and insertion operations in binary search trees are also summarized.
B+ trees are an advanced form of self-balancing trees used for indexing in databases. They improve upon B-trees by only storing data pointers in the leaf nodes, allowing for faster searches. The structure has internal nodes forming multiple levels of indexing and leaf nodes containing all key values and data pointers linked together. This allows both direct and sequential access to stored records. Operations like searching, insertion, and deletion on a B+ tree involve traversing the tree to the appropriate leaf node and rebalancing the tree if needed to maintain its properties.
Class lecture of Data Structure and Algorithms and Python.
Stack, Queue, Tree, Python, Python Code, Computer Science, Data, Data Analysis, Machine Learning, Artificial Intellegence, Deep Learning, Programming, Information Technology, Psuedocide, Tree, pseudocode, Binary Tree, Binary Search Tree, implementation, Binary search, linear search, Binary search operation, real-life example of binary search, linear search operation, real-life example of linear search, example bubble sort, sorting, insertion sort example, stack implementation, queue implementation, binary tree implementation, priority queue, binary heap, binary heap implementation
This document discusses data structures and binary trees. It begins with basic terminology used in trees such as root, node, degree, levels, and traversal methods. It then explains different types of binary trees including strictly binary trees and complete binary trees. Next, it covers binary tree representations using arrays and linked lists. Finally, it discusses operations that can be performed on binary search trees including insertion, searching, deletion, and traversing nodes using preorder, inorder and postorder traversal methods.
This document contains information about trees and binary trees. It begins with definitions of trees, tree terminology like root, child, parent and traversals like preorder, inorder and postorder. It then discusses properties of binary trees like complete and full binary trees. Various representations of trees like linked and sequential representations are described. Finally, it provides examples of using trees to represent expressions and evaluating them using traversals.
This document provides an overview of data structures and trees. It defines trees and their properties like hierarchical structure, parent-child relationships, and representation using arrays and linked lists. It describes binary trees and their properties. It also covers binary search trees, operations on binary trees like insertion, deletion and traversal, and balanced binary search trees like AVL trees.
The document discusses different types of tree data structures, including general trees, binary trees, binary search trees, and their traversal methods. General trees allow nodes to have any number of children, while binary trees restrict nodes to having 0, 1, or 2 children. Binary search trees organize nodes so that all left descendants are less than the parent and all right descendants are greater. Common traversal orders for trees include preorder, inorder, and postorder, which differ in whether they process the root node before or after visiting child nodes.
Passenger car unit (PCU) of a vehicle type depends on vehicular characteristics, stream characteristics, roadway characteristics, environmental factors, climate conditions and control conditions. Keeping in view various factors affecting PCU, a model was developed taking a volume to capacity ratio and percentage share of particular vehicle type as independent parameters. A microscopic traffic simulation model VISSIM has been used in present study for generating traffic flow data which some time very difficult to obtain from field survey. A comparison study was carried out with the purpose of verifying when the adaptive neuro-fuzzy inference system (ANFIS), artificial neural network (ANN) and multiple linear regression (MLR) models are appropriate for prediction of PCUs of different vehicle types. From the results observed that ANFIS model estimates were closer to the corresponding simulated PCU values compared to MLR and ANN models. It is concluded that the ANFIS model showed greater potential in predicting PCUs from v/c ratio and proportional share for all type of vehicles whereas MLR and ANN models did not perform well.
Analysis of reinforced concrete deep beam is based on simplified approximate method due to the complexity of the exact analysis. The complexity is due to a number of parameters affecting its response. To evaluate some of this parameters, finite element study of the structural behavior of the reinforced self-compacting concrete deep beam was carried out using Abaqus finite element modeling tool. The model was validated against experimental data from the literature. The parametric effects of varied concrete compressive strength, vertical web reinforcement ratio and horizontal web reinforcement ratio on the beam were tested on eight (8) different specimens under four points loads. The results of the validation work showed good agreement with the experimental studies. The parametric study revealed that the concrete compressive strength most significantly influenced the specimens’ response with the average of 41.1% and 49 % increment in the diagonal cracking and ultimate load respectively due to doubling of concrete compressive strength. Although the increase in horizontal web reinforcement ratio from 0.31 % to 0.63 % lead to average of 6.24 % increment on the diagonal cracking load, it does not influence the ultimate strength and the load-deflection response of the beams. Similar variation in vertical web reinforcement ratio leads to an average of 2.4 % and 15 % increment in cracking and ultimate load respectively with no appreciable effect on the load-deflection response.
Sorting Order and Stability in Sorting.
Concept of Internal and External Sorting.
Bubble Sort,
Insertion Sort,
Selection Sort,
Quick Sort and
Merge Sort,
Radix Sort, and
Shell Sort,
External Sorting, Time complexity analysis of Sorting Algorithms.
The Fluke 925 is a vane anemometer, a handheld device designed to measure wind speed, air flow (volume), and temperature. It features a separate sensor and display unit, allowing greater flexibility and ease of use in tight or hard-to-reach spaces. The Fluke 925 is particularly suitable for HVAC (heating, ventilation, and air conditioning) maintenance in both residential and commercial buildings, offering a durable and cost-effective solution for routine airflow diagnostics.
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITYijscai
With the increased use of Artificial Intelligence (AI) in malware analysis there is also an increased need to
understand the decisions models make when identifying malicious artifacts. Explainable AI (XAI) becomes
the answer to interpreting the decision-making process that AI malware analysis models use to determine
malicious benign samples to gain trust that in a production environment, the system is able to catch
malware. With any cyber innovation brings a new set of challenges and literature soon came out about XAI
as a new attack vector. Adversarial XAI (AdvXAI) is a relatively new concept but with AI applications in
many sectors, it is crucial to quickly respond to the attack surface that it creates. This paper seeks to
conceptualize a theoretical framework focused on addressing AdvXAI in malware analysis in an effort to
balance explainability with security. Following this framework, designing a machine with an AI malware
detection and analysis model will ensure that it can effectively analyze malware, explain how it came to its
decision, and be built securely to avoid adversarial attacks and manipulations. The framework focuses on
choosing malware datasets to train the model, choosing the AI model, choosing an XAI technique,
implementing AdvXAI defensive measures, and continually evaluating the model. This framework will
significantly contribute to automated malware detection and XAI efforts allowing for secure systems that
are resilient to adversarial attacks.
How to use nRF24L01 module with ArduinoCircuitDigest
Learn how to wirelessly transmit sensor data using nRF24L01 and Arduino Uno. A simple project demonstrating real-time communication with DHT11 and OLED display.
"Feed Water Heaters in Thermal Power Plants: Types, Working, and Efficiency G...Infopitaara
A feed water heater is a device used in power plants to preheat water before it enters the boiler. It plays a critical role in improving the overall efficiency of the power generation process, especially in thermal power plants.
🔧 Function of a Feed Water Heater:
It uses steam extracted from the turbine to preheat the feed water.
This reduces the fuel required to convert water into steam in the boiler.
It supports Regenerative Rankine Cycle, increasing plant efficiency.
🔍 Types of Feed Water Heaters:
Open Feed Water Heater (Direct Contact)
Steam and water come into direct contact.
Mixing occurs, and heat is transferred directly.
Common in low-pressure stages.
Closed Feed Water Heater (Surface Type)
Steam and water are separated by tubes.
Heat is transferred through tube walls.
Common in high-pressure systems.
⚙️ Advantages:
Improves thermal efficiency.
Reduces fuel consumption.
Lowers thermal stress on boiler components.
Minimizes corrosion by removing dissolved gases.
"Boiler Feed Pump (BFP): Working, Applications, Advantages, and Limitations E...Infopitaara
A Boiler Feed Pump (BFP) is a critical component in thermal power plants. It supplies high-pressure water (feedwater) to the boiler, ensuring continuous steam generation.
⚙️ How a Boiler Feed Pump Works
Water Collection:
Feedwater is collected from the deaerator or feedwater tank.
Pressurization:
The pump increases water pressure using multiple impellers/stages in centrifugal types.
Discharge to Boiler:
Pressurized water is then supplied to the boiler drum or economizer section, depending on design.
🌀 Types of Boiler Feed Pumps
Centrifugal Pumps (most common):
Multistage for higher pressure.
Used in large thermal power stations.
Positive Displacement Pumps (less common):
For smaller or specific applications.
Precise flow control but less efficient for large volumes.
🛠️ Key Operations and Controls
Recirculation Line: Protects the pump from overheating at low flow.
Throttle Valve: Regulates flow based on boiler demand.
Control System: Often automated via DCS/PLC for variable load conditions.
Sealing & Cooling Systems: Prevent leakage and maintain pump health.
⚠️ Common BFP Issues
Cavitation due to low NPSH (Net Positive Suction Head).
Seal or bearing failure.
Overheating from improper flow or recirculation.
☁️ GDG Cloud Munich: Build With AI Workshop - Introduction to Vertex AI! ☁️
Join us for an exciting #BuildWithAi workshop on the 28th of April, 2025 at the Google Office in Munich!
Dive into the world of AI with our "Introduction to Vertex AI" session, presented by Google Cloud expert Randy Gupta.
1. Sanjivani Rural Education Society’s
Sanjivani College of Engineering, Kopargaon-423 603
(An Autonomous Institute, Affiliated to Savitribai Phule Pune University, Pune)
NACC ‘A’ Grade Accredited, ISO 9001:2015 Certified
Department of Computer Engineering
(NBA Accredited)
Prof.B.B.Kotame
Subject- Data Structures-II(CO214)
Unit-I Tree
2. Binary Tree
• In binary tree, every node can have at
most two branches i.e. there is no
node with degree greater than two.
• Definition:
- A binary tree is a finite set of nodes,
which is either empty or consist of a
T and two disjoint binary tree called
as left sub tree and the right sub tree.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 2
A
B C
D F
E G
3. - Difference between tree and binary tree
1. For every node may have left sub tree and right sub tree whereas in tree
sub tree doesn’t matter.
2. Binary tree can have zero nodes i.e. binary tree can be empty, which is
not in case of tree
3.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 3
A
B
A
B
In this example 1st binary tree has empty right sub tree
while second binary tree has empty left tree. if we consider
as tree then both are same only representation is different.
4. DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 4
1. Minimum number of nodes in a binary tree of height H = H + 1
Example-
To construct a binary tree of height = 4, we need at least 4 + 1 = 5 nodes.
2. Maximum number of nodes in a binary tree of height H= 2H+1 – 1
Example-
Maximum number of nodes in a binary tree of height 3
= 23+1 – 1
= 16 – 1
= 15 nodes
Properties of Binary Tree
5. 3. Total Number of leaf nodes in a Binary Tree
= Total Number of nodes with 2 children + 1
Here, Number of leaf nodes = 3, Number of nodes with 2 children = 2
• Clearly, number of leaf nodes is one greater than number of nodes with
2 children.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 5
4. Maximum number of nodes at any level ‘L’ in a binary tree= 2L
Example-
Maximum number of nodes at level-2 in a binary tree
= 22
= 4
Thus, in a binary tree, maximum number of nodes that can be present
at level-2 = 4.
6. 1. The height of a binary tree that contains n, n>=0 element is atmost n and atleast [log2(n+1)]
example: log2(n+1) if n=15
= log2 (15+1)=log(16)/log(2)
= 4 (n<= 2h-1)
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 6
7. Exercise
1. A binary tree T has n leaf nodes. The number of nodes of degree-2 in T is ______?
1.Log2n 2.n-1 3.n 4. 2n
2. In a binary tree, the number of internal nodes of degree-1 is 5 and the number of internal nodes of degree-2
is 10. The number of leaf nodes in the binary tree is ______?
1. 10 2.11 3.12 4.15
3. A binary tree T has 20 leaves. The number of nodes in T having 2 children is ______?
1. 20 2.10 3.19 4.15
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 7
8. Type of Binary Tree
1. Skewed Binary Tree: a binary tree in which every
node is having either only left sub tree or right sub
tree
2. Almost Complete Binary Tree: In a complete
binary tree, each non-leaf node compulsory has sub
tree. Also, in the last or the lowest level of this
binary tree, every node should possibly reside
on the left side. Here is the structure of a
complete binary tree:
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 8
B
C
B
C
A
B C
D F
J
E G
H I
9. DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 9
Strictly Binary Tree: if every non-terminal node in a binary tree consist of non-
empty left sub tree and right sub tree then such tree is called as strictly binary tree.
- In other words internal node will have either two children or no child at all.
A
B C
D E
F G
10. DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 10
Complete Binary Tree/Perfect Binary Tree:
• -A complete binary tree is a binary tree
that satisfies the following 2 properties-
• Every internal node has exactly 2 children.
• All the leaf nodes are at the same level.
• Complete binary tree is also called
as Perfect binary tree.
11. • Extended Binary Tree:
- Each empty sub tree is replaced by a failure node. A failure node is represented by
- Any binary tree can be converted into a extended binary tree by replacing each
empty sub tree by a failure nodes
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 11
12. Representation of Binary Tree
• To represent the binary tree in one dimensional array, we need to numbered the
nodes sequentially level by level(left to right).
• Every empty nodes are also numbered. e.g.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 12
A
C
B
G
F
E
D
7 A B C D E F G
A
C
B
G
D
G
D
13 A B C - G D - - - - - E F
13. • For complete Binary tree there is no issue, but for skew tree there is a lot of
wastage of space. e.g k depth of skew requires 2k-1 space out of only k get
occupied in array.
• Therefore another way is needed to represent the Binary tree. That is nothing but
linked representation which is an efficient way than array.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 13
14. • The code to write a tree node would be similar to what is given below. It has a data part and references
to its left and right child nodes.
In a tree, all nodes share common construct.
Binary Tree Node
17. Conversion of Tree into Binary Tree
• Children of parents added using leftmost child's right sibling relation.
DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon 17
A
C
B
G
F
E
D
H
I J
K
A
B
19. The basic operations that can be performed on a binary tree data structure, are the
following −
Insert − Inserts an element in a tree/create a tree.
Traversals − Searches an element in a tree.
Preorder Traversal − Traverses a tree in a pre-order manner.
Inorder Traversal − Traverses a tree in an in-order manner.
Postorder Traversal − Traverses a tree in a post-order manner.
Search- Search an element in tree using traversals.
Delete- delete an element from binary tree
Binary tree Basic Operations
20. Create/Insert OPERATION
• The very first insertion creates the tree. Afterwards, whenever an element is to be inserted, first locate its
proper location. Start searching from the T node, then search for the empty location in the left subtree and
insert the data. Otherwise, search for the empty location in the right subtree and insert the data.
• Algorithm:
1. Enter key to be inserted. Create node as tempNode for it.
2. Check T is NULL, if yes then make tempNode as T of tree
3. If T is not NULL then
4. Take temporary variable *ptr and set *ptr=T
5. Do
i. Ask user in which direction user wants to insert data(Left or right)
ii. if direction is Left the check following condition
21. iii. if(ptr->left==NULL) //insert node at left of tree
{
ptr->left=tempNode;
break; }
else{
ptr=ptr->left;
}
else //if user gives right direction
{
if(ptr->right==NULL)
{
ptr->right=tempNode;
break;
}
else
{
ptr=ptr->right;
}
}
iv. Do step 5 while(ptr!=NULL)
5. Repeat steps 1 to 5 until no more data to
insert.
6. Stop
22. • Btree.cpp
• Enter the element=4
• Do u want to enter more elements (y/n)y
• Enter the element=12
• in which direction(l/r)l
• Do u want to enter more elements (y/n)y
• Enter the element=34
• in which direction(l/r)l
• in which direction(l/r)?r
• Do u want to enter more elements (y/n)y
• Enter the element=1
• in which direction(l/r)r
• Do u want to enter more elements (y/n)y
• Enter the element=22
• in which direction(l/r)r
• in which direction(l/r)?r
• Do u want to enter more elements (y/n)y
• Enter the element=32
• in which direction(l/r)r
• in which direction(l/r)?l
4
12
34
1
22
32
23. Binary Tree Traversal
• Traversal is a process to visit all the nodes of a tree and print their values too. Because, all nodes are
connected via edges (links) we always start from the T (head) node.
• This process could be defined recursively.
• We cannot access a node randomly from a tree. There are three ways which we use to traverse a tree −
• In-order Traversal
• Pre-order Traversal
• Post-order Traversal
24. 1. In - Order Traversal ( LeftChild - T - RightChild )
Algorithm for inorder traversal
Step 1 : Start from the Left Subtree of T .
Step 2 : Then, visit the T.
Step 3 : Then, go to the Right Subtree.
Step 1 : Inoredr on (B) + A+(Inorder on C)
Step 2 : [B+ inorder on(D) ]+A+ (Inorder on C)
Step 3 : B + inorder on(E) + D + Inorder on( F )+ A +Inorder on (C)
Step 4 : B + E + D + F + A +Inorder on(G)+C+ Inorder on(H)
Step 4 : B + E + D + F + A +G+C+ H
Inorder Traversal : B E D F A G C H
25. 2. Pre - Order Traversal ( T - LeftChild - RightChild )
Step 1 : A + Preorder on (B) + Preorder on(C)
Step 2 : A + [B + Preorder on(D)] +Preorder on (C )
Step 3 : A + [B +[D + Preorder on(E )+Preorder on( F)]] + Preorder on (C )
Step 4: A+ B+ D+ E+ F+ [C+Preorder on(G)+Preorder on(H)]
Step 5: A + B + D+ E+ F + C+ G + H
Preorder Traversal : A B D E F C G H
Algorithm for preorder traversal
Step 1 : Start from the T and visit the T.
Step 2 : Then, go to the Left Subtree.
Step 3 : Then, go to the Right Subtree.
26. • Algorithm for post-order traversal
Step 1 : Start from the Left Subtree (Last Leaf) and visit it.
Step 2 : Then, go to the Right Subtree.
Step 3 : Then, go to the T.
Step 1 : (Postorder on (B) + Postorder on (C) + ( A)
Step 2 : [Postorder on(D)+ B]+ Postorder on (C) + ( A)
Step 2 : [[Postorder on(E)+Postorder on(F)+D]+ B]+ Postorder on (C) + ( A)
Step 3 : E + F + D + B + [[Postorder on(G)+ Postorder on(H)]+C]+A
Step 3 : E + F + D + B + G + H + C + A
Post-order Traversal : E F D B G H C A
3. Post - Order Traversal ( Left-Child – Right-Child - T )
31. Non-Recursive Preorder
• Algorithm:
1. S is an empty stack used to store NODE pointer
2. NODE *temp
3.push(root)
4. while(stack is not empty)
{
temp=pop();
print temp->data;
if temp has right child then push into stack
if temp has left child then push into stack
}
5.stop
35. Non Recursive Inorder Traversal
• Algorithm
1. S is an empty stack used to store NODE pointer
2. NODE *ptr=root
3. do
{
while(temp!=NULL)
{
push temp into stack
move temp to its left
}
pop temp
display temp->data
move temp to its right
} while(!isempty())
4. Stop
A
B C
D
38. • Algorithm
In this traversal each node is visited twice but we are supposed to dispaly
only once.
- Hence there should be some mechanism to indicate whether the node is being
visited 1st time or 2nd time.
- Display the content of the node only when it is visited for the 2nd time.
Non Recursive Postorder Traversal
39. • Algorithm:
1. S is an empty stack used to store Node
pointer
2. Node *temp= root
3. do
{
while(temp!=NULL)
s.push(temp)
temp=temp->left
4. pop from stack and assign to temp
temp=s.pop()
5. if (temp->flag==1)
print temp->data
temp=NULL
6. else
temp->flag=1
s.push(temp)
temp=temp->right
}while(!isempty()||temp!=NULL)
A
B C
D
struct BTnode
{
char data;
BTnode *left;
BTnode *right;
int flag=0;
}
41. • inorder,preorder and postorder requires stack for traversal, but there are some
traversal techniques which requires queue e.g. BFS
• This traversal is also called as Level order traversal as it visits nodes in levels
e.g.
10
5 20
15
1 7
10 5 20 1 7 15
43. • BFS is generally used for finding minimum cost edges.
• In peer to peer network, to find all neighbour nodes
45. • Tree is traversed according to its depth and visited node in depthwise.
• DFS is a preorder traversal
• start from root node,move along the edge towards left node
10
5 20
15
1 7
10 5 1 7 20 15
46. • Algorithm
1. Visit the root node. push it into stack
2. Pop the node and display data.
3. if right child is not NULL,push it into stack
4. if left child is not NULL,push it into stack
5. repeat step 2-4 until stack is empty Applications:
1. Topological sorting-> for scheduling jobs
from given dependencies among jobs
2. Path finding: use stack to keep track of
the path between source vertex to
destination vertex
47. 10
5 D
F
A
B
C E
DESCRIPTION Stack OUTPUT
visit A and push(A) A
pop and display -1 A
push D
push B
B D A
pop B
display B
D A B
push C pop C and
display
D A B C
pop D
display D &push E,F
E F A B C D
pop E,display E
pop F, display F
-1 A B C D E F
48. Binary Search Tree
• When we store order data into array structure we use efficient search algorithm.e.g. Binary Search
• However, to provide efficient insertion and deletion operation,we represent a link list.
• The problem with linked list is that their search algo. which are sequential searches,very
ineffecient.
• So what we need is data structure that has efficient search algo. and at the same time efficient
insertion and deletion operation.
• Binary Search Tree provide that structure.
49. Cont...
Defination: A Binary search tree is a binary tree with following properties:
1. All keys are distincts.
2. All items in the right subtree are greater than equal to the root.
3. each subtree is itself a binary search tree.
6
17
19
10
5 20
25
10
8
5 9
22
17
19
10
5 20
12
17
8
11 15
50. BinarySearchTree(BST)
A
s
h
i
m
L
a
m
i
c
h
h
a
n
e
5
0
• 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 keysin the right sub-tree of the root are greater than the keyin the root
node
• Theleft and right sub-trees of the root are again binary search trees
51. BinarySearchTree(BST)
A
s
h
i
m
L
a
m
i
c
h
h
a
n
e
5
1
• Abinary search tree is basically abinary tree, and therefore it canbe
traversed in inorder, preorder andpostorder.
• If we traverse abinary search tree in inorder and print the identifiers
contained in the nodes of the tree, we get asorted list of identifiers in
ascending order.
53. DEPARTMENT OF COMPUTER ENGINEERING, Sanjivani COE, Kopargaon
53
A
B E
F
D
I
C
G
H
A
B E
F
D
I
G
C
H
A
B E
F
C
D
G
I
H
Correct
tree
Editor's Notes
#8: 1. Solution-
Using property-3, we have-
Number of degree-2 nodes
= Number of leaf nodes – 1
= n – 1 Thus, Option (B) is correct.
2. Solution-
Using property-3, we have-
Number of leaf nodes in a binary tree
= Number of degree-2 nodes + 1
= 10 + 1
= 11 Thus, Option (B) is correct.
3. Solution is 19