You are on page 1of 20

Solutions to Chapter One Questions

1. ___________ is the process of executing a correct program on data sets and measuring the time and
space it takes to compute the results?
Ans.
Profiling
2. Define algorithm? What are its properties?
Ans.
An algorithm is a set of instructions that provide step-by-step specifications to perform a task.
The properties of an algorithm are:
Input: Specifies the data set that is applied to the algorithm to check its validity.
Output: Specifies the data set that is produced as a result of the algorithm execution.
Definiteness: Specifies that the instructions described in the algorithm should be well defined and
should not create any ambiguity.
Termination: Specifies that the instructions described in the algorithm must contain a proper
termination condition.
Effectiveness: Specifies that the algorithm take less time and less memory space during its execution.
3. What is debugging and what is profiling?
Ans.
Debugging is the process of identifying and fixing the errors in a program. Errors in a program can be
identified by executing the program with a sample dataset.
Profiling is the process of measuring the performance of the program by executing it on different data
sets. Performance of a program is measured by recording the time and memory space that the program
takes during its execution.
4. One of the properties of an algorithm is beauty (true/false)
Ans.
False

FAQ
1. Can we represent algorithms in a pictorial form?
Ans:
Yes, you can represent algorithms in the pictorial form using flow charts. Flow charts make use of
many geometrical shapes, such as rectangles and circles to represent the input, output, and
instructions of an algorithm.
2. What should I do if I have to solve a problem that contains many complex tasks?
Ans:
You can write separate algorithms for each task and then access these algorithms in other algorithms
in a sequence. For example, if you have to solve a problem in which you have to perform the
following tasks:
Calculate the difference of two numbers
Calculate the sum of other two numbers
Print the output of both the operations
You can write separate algorithms for each of the first two tasks and then print the output by writing a
separate algorithm for the final task.
. Are there any algorithmic notations to write a nested conditional statement?
Ans:
Yes, there is an algorithmic notation that you can use to write a nested conditional statement, and it is
as follows:
if <condition 1>
if <condition 2>
Block2
end if
Block1
end if
4. What should I do if I have to terminate a loop structure in the middle, when a particular condition
arises, which is different from the terminating condition of the loop?
Ans:
You can use Break statement to terminate the loop when a particular condition arises, which is
different from the terminating condition of the loop.

Solutions to Chapter Two Questions


1. Give at least 5 real life examples where we use stack operations.
Ans.
The real life examples of stacks are:
Bangles in a hand: The bangles wore in a hand follow last-in-first-out (LIFO) strategy of stack. The
bangle that you wear first is the last one to be taken out while removing all the bangles from the hand.
The bangle that is worn last is the first one to be taken out.
Same circumference circular rings in a pole: The rings having same circumference placed into a
pole also follow LIFO strategy. The topmost ring, which was the last to be placed in the pole, is the
first one to be taken out.
Sacks full of wheat placed one over other: The sack at the top is removed first and the sack at the
bottom is removed last.
The bolts screwed to a single nut: When the bolts are screwed to a single nut, the last screwed bolt is
unscrewed first and the bolt that was screwed first is unscrewed in the last.
Battery cells in a torch: The battery cells in a torch also follow the same LIFO strategy of stack.
2. Give at least 5 real life examples where queue is used.
Ans.
Real life examples of queue are:
A queue of people at ticket-window: The person who comes first gets the ticket first. The person
who is coming last is getting the tickets in last. Therefore, it follows first-in-first-out (FIFO) strategy
of queue.
Vehicles on toll-tax bridge: The vehicle that comes first to the toll tax booth leaves the booth first.
The vehicle that comes last leaves last. Therefore, it follows first-in-first-out (FIFO) strategy of
queue.
Phone answering system: The person who calls first gets a response first from the phone answering
system. The person who calls last gets the response last. Therefore, it follows first-in-first-out (FIFO)
strategy of queue.
Luggage checking machine: Luggage checking machine checks the luggage first that comes first.
Therefore, it follows FIFO principle of queue.
Patients waiting outside the doctor's clinic: The patient who comes first visits the doctor first, and
the patient who comes last visits the doctor last. Therefore, it follows the first-in-first-out (FIFO)
strategy of queue.

3. Name 10 situations that can be represented by means of graphs. Explain what each vertex and edge
represents.
Ans.
The situations that can be represented by means of graphs are:

Example Vertex represents Edge represents

Displacement Position or state Distance between the two


vertices connected through the
edge

Shortest Path City Distance between the two


vertices connected through the
edge

City Map Places of the city Distance between the two


vertices connected through the
edge

Air route Different airports Distance between the two


vertices connected through the
edge

Population Growth Population for an Variation in the population


per year year between the two vertices
connected through the edge

In mathematical Value Conditions and calculations


expressions

Daily temperature Temperature for a Variation in the temperature


report specific time between the vertices connected
through the edge

Child-parent Name of the person Relationship


relationship

Organization chart Designation Order or flow

Chemical structure Chemical elements Bonding between the elements

4. Draw a connected graph that becomes disconnected when any edge is removed from it.
Ans.
The following figure shows a graph that becomes disconnected when any edge is removed from it:
Disconnected Graph

5. Draw all trees of n labeled vertices for n=1,2,3,4 and 5.


Ans.
The following figures show the trees for various values of n, where n represents the number of
vertices in a tree.
For n=1

For n=2

For n =3
There can be a number of trees with 3 labeled vertices. Some of the examples of the trees with 3
labeled vertices are:

For n=4
Again, there can be a number of trees with 4 labeled vertices. Some of the examples of the trees with
4 labeled vertices are:

For n=5
Again, there can be a number of trees with 5 labeled vertices. Some of the examples of the trees with
5 labeled vertices are:

6. Sketch all binary trees with six pendent edges.


Ans.
The following figures show binary trees with six pendent edges:
Binary Tree with Six Pendent Edges
The preceding figures, A, B, and C, show three examples of binary trees having six pendent edges.
All the binary trees having six leaf nodes come under this category.
7. Write adjacency and incidence matrix for all the graphs developed.
Ans.
The following tables show adjacency and incidence matrices for the graph of question no. 4:

FAQ
1. How will you insert an element in an empty queue?
Ans:
You need to increase the value of rear end by one and then insert the value at the location where the
rear end of the queue points.

2. Can a three-dimensional array be represented on a paper?


Ans:
Yes, a three-dimensional array can be represented on a paper by using blocks where each block
represents a two-dimensional array.
3. Where do you implement stack operation in a program?
Ans:
You implement stack operation during recursion and function call operations in a program.
4. Can a matrix have equal number of rows and columns? What is the name of this matrix?
Ans:
Yes, a matrix can have equal number of rows and columns. This matrix is called a square matrix.
5. Can a tree be structured?
Ans:
Yes, a tree can be structured. A structured tree is used to represent a hierarchical relationship among
the various nodes of the tree. For example, parent-child relationship in a family can be well
represented using a structured tree.
6. What are the basic differences between a graph and a tree?
Ans:
The basic differences between a graph and a tree are:
A tree cannot have any cycle; however, a graph can have a cycle in its structure.
All the nodes in a tree structure should be connected to a root node either directly or through any
other node, however, in a graph, it is not necessary.
The numbers of edges in a tree are always one less than the number of nodes, however, in a graph,
edges are less than the vertex but no relation exists between the vertex and its edges.

Solutions to Chapter Three Questions


1. Design and develop algorithms for multiplying n integers.
Hint: Follow the algorithm to add n numbers given in the text
Ans.
Algorithm: Multiply_n_Integers
Input: integers, number of integers to be multiplied (n), loop variable (i)
Output: mul, updated
Method: Display 'Enter the number of elements'
Accept n
Display 'Enter elements one by one'
for (i = 1 to n in steps of 1 do)
Accept a (i)
end_for
mul = 1
for (i = 1 to n in steps of 1 do)
mul = mul*a(i)
end_for
Display 'multiplication of n integers is = ', mul
2. Design and develop an algorithm for finding the middle element in three numbers.
Ans.
To find the middle element one has to first sort the numbers in ascending order. The smallest number
becomes the first element in the sorted list and the largest number becomes the last element in the
sorted list.
Consider three numbers 3, 1, and 7.
The smallest number amongst these three is 1; therefore, 1 becomes the first element in the sorted list.
Amongst 3 and 7, 3 is the second element. The larger number 7 is left out and becomes the last
element. Hence the middle number 3 is displayed.
Algorithm : Middle_3_Elements
Input: a, b, c the three numbers to be sorted, two temporary variables k1, and K2
Output: Middle element in the three numbers.
Method:
If (a<b)
If (a<c)
If (b<c)
m=b
else
m=c
end if
else
m=a
end if
else
if (b<c)
if (a<c)
m=a
else
m=c
end if
else
m=b
end if
end if

3. Develop an algorithm to find the number of Permutations and Combinations for a given n and r.
Ans.
Permutation of a given number is given by n*(n-1)*(n-2)...up to r factors.
This is a generalized algorithm for n>2
Algorithm: Permutation of a number for a given r
Input: n and r
Output: Permutation of n
Method:
a) per = 1
for (j = n to n - r + 1 in steps of -1 do) //where j is a loop variable
per = per*j
end_for
Display ' Permutation = ', per
b) Combination of a number n for a given r is calculated by
nCr = nPr / r!
Calculate the permutation nPr using the above algorithm
Calculate the factorial for r using the algorithm
fact = 1
for (j =1 to r in steps of 1 do) //where j is a loop variable
fact = fact*j
end_for
comb = per / fact
Display ' Combination =', comb
4. Design an algorithm to generate all prime numbers within the limits l1 and l2.
Ans.
Algorithm: to generate all prime numbers between the limits l1 and l2.
Input: l1 and l2
Output: Prime numbers between l1 and l2
Method:
for (n=l1 to l2 in steps of 1 do)
prime=true
for (i=2 to n/2 in steps of 1 do)
if (n % i =0)
prime = false
break
end_if
end_for
if (prime = true)
Display 'Prime number is =', n
end_for
5. Design an algorithm to find the reverse of a number.
Ans.
Algorithm: Reverse of a number
Input: number
Output: Reverse of a number
Method:
new_number = 0
while (number > 0)

n = number % 10 //n denotes a digit extracted from the


number
number = number / 10
new_number = new_number +n
new_number= new_number*10
end while
new_number = new_number/10
Display 'Reverse number is =', new_number
6. A number is said to be a palindrome if the reverse of a number is same as the original. Design an
algorithm to check whether a number is a palindrome or not.
Ans.
Algorithm: check whether the number is a palindrome or not
Input: number, flag
Output: number is a palindrome
Method:
count = 0
while (number > 0)

n = number%10
a(count)=n
count = count+1
end while
half = count/2
palin = true
for (j=1 to half in steps of 1 and k=count to half in steps of –1 do)

if (a (j)! =a(k))
palin = false
break
end if
if (palin = true)
Display 'Number is a palindrome'
else
Display 'Number is not a palindrome'
end if
end for
7. Design an algorithm to check whether a given string is a palindrome or not.
Ans.
Algorithm: check whether the string is a palindrome or not
Input: string, flag
Output: string is a palindrome
Method:
count = 0
while (the next character ch in the string is not empty)

a(count) = ch
count = count+1
end while
half = count/2palin = true
for (i=1 to half in steps of 1 and j=count to half in steps of –1 do)

if (a (i)! =a (j))
palin = false
break
end if
if (palin = true)
Display 'String is a palindrome'
else
Display 'String is not a palindrome' end if
end for

8. Implement all the devised algorithms and also the algorithms discussed in the chapter.
Ans.
You can implement algorithms discussed in this chapter in various languages, such as C++ and Java.
However, you need to know the syntax of the respective language before implementing it.

FAQ
1. Is there any operator that determines the remainder during division operation?
Ans:
Remainder can be found out using the operator %.
2. What will happen when the user tries to find out the quadrant for the coordinate input (0,0)?
Ans:
When the user inputs (0,0) the first condition in the algorithm that is x>=0 and y>=0 gets satisfied and
the program will output first quadrant as the solution.
3. How to calculate the factorial for number 0?
Ans:
!0 =1
This exception is generally specified by the programmer.
This condition can be checked using if else statement.

4. How to find the largest of three numbers a, b, and c?


Ans:
largest = a
if (largest<b)
largest = b
if (largest<c)
largest = c
Display 'Largest number is', largest

5. How to interchange the values of two numbers a and b?


Ans.
Consider a variable c to temporarily store the value of variable, a. The following algorithm shows
how to interchange the values of two numbers by using a temporary variable.
Display 'Enter the value of a'
Accept a
Display 'Enter the value of b'
Accept b
c=a
a=b
b=c
Display 'The values of a and b are ', a, b

6. How to interchange the values of two numbers a and b without using temporary variable?
Ans:
Display 'Enter the value of a'
Accept a
Display 'Enter the value of b'
Accept b
a=a+b
b=a-b
a=a-b
Display 'The values of a and b are ', a, b

Solutions to Chapter Four Questions


1. What are the serious shortcomings of the binary search method and sequential search method?
Ans.
A serious shortcoming of the sequential search method is that even if the element that you are trying
to search is not present in the given file, the entire file is searched at least once.
A serious shortcoming of the binary search method is that it can be applied only to a list in which the
elements are arranged in ascending order.

2. Consider a data set of nine elements {10, 30, 45, 54, 56, 78, 213, 415, 500} and trace the linear
search algorithm to find whether the keys 30, 150, 700 are present in the data set or not.
Ans.
In linear search algorithm, each element in the list is compared with the given key element. If any of
the elements in the list is equal to the given key element, the linear search algorithm returns TRUE,
else it returns FALSE.
Let us apply linear search to find the key element 30 in the given list.
Take the first element 10 from the list and compare it with the key element 30. Clearly the two
elements are not equal.
Take the next element 30 from the list and compare it with the key element 30. Clearly, the two
elements are equal. The algorithm returns the TRUE value, and the algorithm is terminated.
Similarly, search for the key elements 150 and 700. At the end of the search, you will find that the key
elements 150 and 700 are not found in the list.
3. Trace the binary search algorithm on the same data set and same key elements of problem 2.
Ans.
Binary search algorithm can be applied only to the sorted list of elements. Lets first apply the binary
search algorithm to find the key element 30 in the following list taken from problem 2:

Take the middle element from the list and compare it with the key element. Clearly, the middle
element 56 > key element 30. As the key element is smaller than the middle element, the key element
can only be present in the left sub list that is as follows:

Again, take the middle element from this list and compare it with the key element. Clearly, the middle
element 45 > key element 30. As the key element is smaller than the middle element, the key element
can only be present in the left sub list that is as follows:

Again, take the middle element from this list and compare it with the key element. Clearly middle
element 30= key element 30, therefore, the binary search algorithm returns a TRUE value and the
algorithm is terminated.
Similarly, search for the key elements 150 and 700. At the end of the search, you will find that the key
elements 150 and 700 are not found in the list.

4. Try to know more sorting techniques and make a comparative study of them.
Ans.
There are various sorting techniques, such as bubble sort, quick sort, and shell sort. Each of these
sorting techniques is defined as follows:
Bubble sort: In the bubble sort technique two elements are compared at a time and if the two
elements are not in ascending order these elements are interchanged. This process is repeatedly
performed throughout the given list until the list is completely sorted. To sort a list of n elements
using bubble sort you need to make a total of (n-1)2 comparisons.
Quick sort: The basic idea underlying quick sort is to allow a specific element 'a' within the list 'x' to
find its proper position 'j'. The proper position 'j' is found such that it satisfies the following two
conditions:
The elements on the left hand side of position 'j' are all smaller than or equal
to 'a'
The elements on the right hand side of position 'j' are all greater than or equal
to 'a'
If 'a' satisfies these two conditions, then 'a' is the jth smallest element in the
list and 'a' is placed at jth position in the finally sorted list. This process is
then repeated for sub arrays x [0..j-1] and x [j+1..n-1].
Shell sort: In shell sort, the given list x is divided into sub lists containing every kth element of the
given list. For example, if k=5 then one sub list contains x [0], x [5], x [10]..., another sub list contains
x [1], x [6], x [11]..., and so on. The elements of these sub lists are then compared two at a time and if
the two elements are not in ascending order, these elements are interchanged.
Now, a new value of k is chosen which is smaller than the previous value of k
and the process is repeated again. This process is repeated until the value of k
is set to 1 so that the sub list consisting of the entire list is sorted.
5. Hand simulate Insertion Sort on the data set {13, 45, 12, 9, 1, 10, 40}
Ans.
Let us apply Insertion Sort algorithm on the given list:

Note
The figure 4.1 given on page 41 of the book is incorrect. It
shows the steps for straight selection sort.

6. Implement all the algorithms designed in the chapter.


You can implement algorithms discussed in this chapter in various languages, such as C++ and Java.
However, you need to know the syntax of the respective language before implementing it.

FAQ
1. I have stored some messages received from my friends in a folder and I want to sort these
messages. How can I do that?
Ans:
To sort a list of elements you need to compare each element with the other element in the list and then
place these elements in the sorted order. The messages do not contain any information that can be
used to compare one message with the other. Therefore, you can sort these messages only with respect
to the names of your friends, which can be easily compared.

2. Is there any other kind of selection sorting technique, which is different from the straight selection
sorting technique?
Ans:
Yes, there is one more selection sorting technique known as the general selection sort. In general
selection sort each element is selected one at a time and placed in its proper sorted position in the
given list. The elements are selected in the same order in which they are placed in the given list.

3. Can we implement binary search technique to find an element in a data structure other than arrays?
Ans:
Yes, you can use the binary search technique to search an element in a tree data structure. To apply
the binary search technique on a tree data structure, the left hand child node of the tree data structure
must be less than or equal to the parent node. In addition, the right hand child node must be greater
than or equal to the parent node.

4. To sort a list of alphabets, I need to compare two alphabets and place them in proper order. How
does the computer understand that alphabet a is less than b?
Ans:
The computer does not compare the alphabets as it is, but it compares the ASCII values of alphabets,
which are in the form of numerals.

5. What should I do if I have to insert an element in a given list such that the elements in the list are in
ascending order?
Ans:
Sort the elements in the given list in ascending order using insertion sorting technique. Then select a
position in the list where the new element is to be inserted. Move all the elements that are placed at
the right hand side of this position by one position to the right. This process of moving the elements
creates an empty space in the given list. Place the new element at this newly created space in the list.
The space is created such that the element is placed in the ascending order in the list with respect to
the elements already present in the list.

Solutions to Chapter Five Questions


1. Trace out the algorithm Merge Sort on the data set {1,5,2,19,4,17,45,12,6}
Ans.
Steps to perform Merge Sort on the data set {1,5,2,19,4,17,45,12,6} are:
(1,5,2,19,4}{17,45,12,6)
((1,5,2) (19,4)) ((17,45)(12,6))
(((1,5) (2)) ((19)(4))) (((17)(45)) ((12) (6)))
((((1) (5)) (2)) ((19)(4))) (((17)(45)) ((12) (6)))
(1,5) (2) (4,19) (17,45) (6,12)
(1,2,5) (4,19) (17,45) (6,12)
(1,2,4,5,19) (6,12,17,45)
(1,2,4,5,6,12,17,19,45)

2. Trace out the algorithm Quick Sort on the data set {12,1,5,7,19,15,8,9,10}.
Ans.
Steps to perform Quick Sort on the data set{12,1,5,7,19,15,8,9,10} are:
{(12),1,5,7,19,15,8,9,10}
{(12),1,5,7,10,15,8,9,19}
{(12),1,5,7,10,9,8,15,19}
{8,1,5,7,10,9,(12),15,19}
{(7),1,5,8,10,9}{12}{(15),19}
{5,1,(7),8,10,9}{12}{15,19}
{(5),1}{7}{(8),10,9}{12}{15}{19}
{1,(5)}{7}{(8),9,10}{12}{15}{19}
{1,(5)}{7}{(8),9,10}{12}{15}{19}
{1}{5}{7}{8}{(9),10}{12}{15}{19}
{1}{5}{7}{8}{9}{10}{12}{15}{19}
3. Implement all the algorithms designed in this chapter.
Ans.
You can implement algorithms discussed in this chapter in various languages, such as C++ and Java.
However, you need to know the syntax of the respective language before implementing it.
4. Trace out the algorithm MaxMin on a data set consisting of at least 8 elements.
Ans.
Steps to perform MaxMin on a data set (2,4,6,3,8,1,9,7) are:
(2,4,6,3) (8,1,9,7)
((2,4)(6,3)) ((8,1)(9,7))
In sublist (4,6), max is 6 and min is 4. In sublist (8,9), max is 9 and min is 8.
Comparing max and min values of sublist (2,4) and sublist (6,3), value of max is 6 and min is 2.
Therefore, for sublist (2,4,6,3) max is 6 and min is 2.
Similarly, comparing max and min values of sublist (8,1) and sublist (9,7), value of max is 9 and min
is 1.
Therefore, for sublist (8,1,9,7) max is 9 and min is 1.
Finally, comparing max and min values of sublist (2,4,6,3) and sublist (8,1,9,7), value of max is 9 and
min is 1.
5. List out the merits and the demerits of recursion.
Ans.
Merits of recursion are:
Mathematical functions, such as Fibonacci series generation can be easily implemented using
recursion as compared to iteration technique.
Demerits of recursion are:
Many programming languages do not support recursion; hence, recursive mathematical function is
implemented using iterative methods.
Even though mathematical functions can be easily implemented using recursion, it is always at the
cost of execution time and memory space.
The recursive programs take considerably more storage and take more time during processing.
6. The data structure used by recursive algorithms is ______.
Ans.
Stack
7. When is it appropriate to use recursion?
Ans.
Recursion is used for repetitive computations in which each action is stated in terms of previous
calculation results.

FAQ
1. What will happen if a terminating condition is not given in a recursive process?
Ans:
If the terminating condition is not given the recursive process, the recursive process will be continued
in an infinite loop.
2. What is the complexity of quick sort and merge sort for an average case?
Ans:
The complexity of both merge sort and quick sort for an average case is:
O(n log n)
3. Can I solve any problem without using recursion?
Ans:
Yes, you can solve any problem without using recursion. However, the number of iterations in a
program increases when you create a program without recursion. This is because recursion provides
an easy and efficient way to solve complex problems.

4. Give some examples of sorting where you can use recursion?


Ans:
There are various types of sorting that use recursion, such as shell sort and heap sort.
5. In the worst case complexity, which sorting technique, merge sort or quick sort, should be used and
why?
Ans:
In the worst case complexity, you should use merge sort. The complexity of merge sort in worst case
is O(n log n), which is better then the complexity of quick sort in worst case that is O(n2).

Solutions to Chapter Six Questions


1. What is a binary tree?
Ans.
A binary tree is made up of nodes where each node consists of three elements, left node, right node
and a data element. The root node is the topmost node of the binary tree.
2. Differentiate between complete and full binary trees?
Ans.
The following table lists the differences between complete binary trees and full binary trees:

Complete binary trees Full binary trees

All the nodes at the previous All levels are maximally


level are fully accommodated accommodated.
before the next level is
accommodated.

Number of nodes at the last (n) Number of nodes at the last (n) level
level may or may not equal to 2n. is exactly equal to 2n.

Leaf nodes may or may not be at All leaf nodes are at the same level.
the same level.

A complete binary tree may or A full binary tree is always a


may not be full binary tree. complete binary tree.

3. What is the maximum number of nodes in the binary tree of level 7, 8, and 9?
Ans.
The maximum number of nodes in the binary tree is calculated by 2l+1 - 1 where l is the level of the
binary tree.
The maximum number of nodes for level 7, 27+1 - 1 = 255
The maximum number of nodes for level 8, 28+1 - 1 = 511
The maximum number of nodes for level 9, 29+1 - 1 = 1023

4. What is the wastage of memory for a binary tree with 16 nodes represented in a 1D array, 2D array,
and a linked representation?
Ans.
a) For a 1D array, the formula for calculating percentage of memory utilization is:
(n -1/2l+1 - 1)*100 where n represents the number of nodes and l represents the depth of the tree.
However, in the given question, the depth has not been specified. Therefore, the percentage memory
utilization cannot be calculated.
b) For a 2D array, the percentage of memory utilization is:
(n -1/n2)*100 = (16 -1/162)*100 = 5.86%
Therefore, the wastage of memory in 2D array is 100 - 5.86 = 94.14%
c) For a linked list, the percentage of memory utilization is:
(n -1/2n)*100 = (16 -1/2*16)*100 = 46.88%
Therefore, the wastage of memory in 1D is 100 - 46.88 = 53.13%

5. For at least 5 binary trees of different depths greater than or equal to 6 of your choice, obtain the
preorder, postorder and inorder sequences.
Ans.
The following figure shows a binary tree with 14 nodes where A is the root node:

Binary Tree with 14 Nodes


The preorder traversal sequence for the above binary tree is:
ABDHKMNLECFIJG
The infix notation for the above binary tree is:
MKNHLDBEAIFJCG
The postorder notation for the above binary tree is:
MNKLHDEBIJFGCA

FAQ
1. Determine the condition in which complete binary tree is called full binary tree.
Ans:
A complete binary tree is called full binary tree if,
All the leaves are present only at the last level.
All the nodes at the previous level are fully accommodated.
2. What is static allocation for representing a binary tree?
Ans:
Static allocation means that the memory allocation for representing the binary tree using 1D or 2D
arrays is made statically at compile time.

3. What is dynamic allocation for representing a binary tree?


Ans:
Dynamic allocation means that the memory allocation for representing the binary tree using linked list
is made dynamically at run time.

4. What is the use of a binary tree?


Ans:
Binary trees are used in search techniques, such as binary search. Binary trees designed for binary
search are called binary search trees.
Binary search trees have the following characteristics:
The data key in the left child node needs to be smaller than or equal to the data key of its parent node.
The data key in the right child node needs to be greater than or equal to the data key of its parent
node.

5. What conditions are required to make a binary tree a complete binary tree?
Ans:
Two conditions that are required to make a binary tree of depth d a complete binary tree are:
Any node at level less than d -1 has two children.
Any node in the tree with a right child at level d must have a left child and
every left descendant of the parent node either is a leaf at level d or has
two children.

You might also like