data structure
DESCRIPTION
ICT TrainingTRANSCRIPT
![Page 1: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/1.jpg)
Data Structures
![Page 2: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/2.jpg)
Which of the following is faster?
◦ A binary search of an ordered set of elements in
an array or a sequential search of the elements?
Question No : 1
![Page 3: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/3.jpg)
The binary search is faster than the
sequential search.
◦ The complexity of binary search is 'log n' whereas
the complexity of a sequential search is 'n'.
◦ In a binary search, each time we proceed, we
have to deal with only half of the elements of the
array compared to the previous one. So the
search is faster.
Answer
![Page 4: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/4.jpg)
List out the areas in which data structures
are applied extensively?
Question No : 2
![Page 5: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/5.jpg)
Compiler Design
Operating System
Database Management
System
Statistical analysis package
Numerical Analysis
Graphics
Answer
![Page 6: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/6.jpg)
Which data structure is used to perform
recursion?
Question No : 3
![Page 7: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/7.jpg)
Stack.
◦ Because of its LIFO (Last In First Out) property it
remembers its caller and hence knows where to
return to when the function has to return.
◦ Recursion makes use of system stack for storing
the return addresses of the function calls. Every
recursive function has its equivalent iterative
(non-recursive) function.
◦ Even when such equivalent iterative procedures
are written, explicit stack is to be used.
Answer
![Page 8: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/8.jpg)
Tree can have duplicate values :
True (or) False?
Question No : 4
![Page 9: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/9.jpg)
True
◦ Tree defines the structure of an acyclic graph but
does not disallow duplicates.
Answer
![Page 10: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/10.jpg)
The size of a Tree is the number of nodes in
the Tree : True (or) False?
Question No : 5
![Page 11: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/11.jpg)
True
◦ The size denotes the number of nodes, height
denotes the longest path from leaf node to root
node.
Answer
![Page 12: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/12.jpg)
Ram is told to sort a set of Data using Data structure.
He has been told to use one of the following Methods
a. Insertion
b. Selection
c. Exchange
d. Linear
Now Ram says a Method from the above can not be
used to sort. Which is the method?
Question No : 6
![Page 13: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/13.jpg)
d. Linear
◦ Using insertion we can perform insertion sort,
using selection we can perform selection sort, and
using exchange we can perform bubble sort.
◦ But no sorting method is possible using linear
method;
◦ Linear is a searching method
Answer
![Page 14: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/14.jpg)
Ashok is told to manipulate an Arithmetic
Expression. What is the data structure he
will use?
a. Linked List
b. Tree
c. Graph
d. Stack
Question No : 7
![Page 15: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/15.jpg)
d. Stack
Stacks are used to evaluate the algebraic or arithmetic
expressions using prefix or postfix notations
Answer
![Page 16: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/16.jpg)
There are 8,15,13,14 nodes in 4 different
trees. Which of them could form a full
binary tree?
a. 8
b. 15
c. 13
d. 14
Question No : 8
![Page 17: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/17.jpg)
In general, there are 2n – 1 nodes in a full
binary tree.
By the method of elimination: Full binary tree contains
odd number of nodes.
So there cannot be a full binary tree with 8 or 14 nodes.
With 13 nodes, you can form a complete binary tree but
not a full binary tree.
Full and complete binary trees are different
All full binary trees are complete binary trees but not
vice versa
Answer
![Page 18: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/18.jpg)
Full binary Tree:
A binary tree is a full binary tree if and only if:
Each non leaf node has exactly two child nodes
All leaf nodes have identical path length
It is called full since all possible node slots are
occupiedA
B C
D E F G
Answer
![Page 19: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/19.jpg)
Complete binary Tree:
A complete binary tree (of height h) satisfies the
following conditions:
Level 0 to h-1 represent a full binary tree of height h-1
One or more nodes in level h-1 may have 0, or 1 child
nodes
Answer
A
B C
D E F G
H I J K
![Page 20: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/20.jpg)
How many null branches are there in a
binary tree with 20 nodes?
Question No : 9
![Page 21: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/21.jpg)
21 (null branches)
Let’s consider a tree with 5 nodes
So the total number of null nodes in a binary tree of n
nodes is n+1
Answer
Null branches
![Page 22: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/22.jpg)
Write an algorithm to detect loop in a linked
list.
You are presented with a linked list, which may have a
"loop" in it. That is, an element of the linked list may
incorrectly point to a previously encountered element,
which can cause an infinite loop when traversing the list.
Devise an algorithm to detect whether a loop exists in a
linked list. How does your answer change if you cannot
change the structure of the list elements?
Question No : 10
![Page 23: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/23.jpg)
One possible answer is to add a flag to each element of
the list.
You could then traverse the list, starting at the head and
tagging each element as you encounter it.
If you ever encountered an element that was already
tagged, you would know that you had already visited it
and that there existed a loop in the linked list.
What if you are not allowed to alter the structure of the
elements of the linked list?
Answer
![Page 24: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/24.jpg)
The following algorithm will find the loop:
a) Start with two pointers ptr1 and ptr2.
b) Set ptr1 and ptr2 to the head of the linked list.
c) Traverse the linked list with ptr1 moving twice as fast as ptr2
(for every two elements that ptr1 advances within the list,
advance ptr2 by one element).
d) Stop when ptr1 reaches the end of the list, or when ptr1 = ptr2.
e) If ptr1 and ptr2 are ever equal, then there must be a loop in the
linked list. If the linked list has no loops, ptr1 should reach the
end of the linked list ahead of ptr2
Answer
![Page 25: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/25.jpg)
The Operation that is not allowed in a
binary search tree is
a. Location Change
b. Search
c. Deletion
d. Insertion
Question No : 11
![Page 26: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/26.jpg)
a. Location Change
Answer
![Page 27: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/27.jpg)
Array is a type of ________________ data
structure.
a. Non Homogenous
b. Non Linear
c. Homogenous but not Linear
d. Both Homogenous and Linear
Question No : 12
![Page 28: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/28.jpg)
d. Both Homogenous and Linear.
Answer
![Page 29: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/29.jpg)
The address of a node in a data structure is
called
a. Pointer
b. Referencer
c. Link
d. All the above
Question No : 13
![Page 30: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/30.jpg)
d. All the above
Answer
![Page 31: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/31.jpg)
The minimum number of edges in a
connected cycle graph on n vertices is
________
a. n
b. n + 1
c. n – 1
d. 2n
Question No : 14
![Page 32: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/32.jpg)
a. n
Answer
![Page 33: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/33.jpg)
The total number of passes required in a
selection sort is
a. n + 1
b. n – 1
c. n
d. n * n
Question No : 15
![Page 34: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/34.jpg)
b. n – 1
Answer
![Page 35: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/35.jpg)
The node that does not have any sub trees
is called ___________
a. Null Node
b. Zero Node
c. Leaf Node
d. Empty Node
Question No : 16
![Page 36: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/36.jpg)
c. Leaf Node
Answer
![Page 37: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/37.jpg)
Linked List is a
a. Static Data Structure
b. Primitive Data Structure
c. Dynamic Data Structure
d. None of the above
Question No : 17
![Page 38: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/38.jpg)
c. Dynamic Data Structure
Answer
![Page 39: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/39.jpg)
Which data structure is needed to convert
infix notation to postfix notation.
a. Tree
b. Linear Linked List
c. Stack
d. Queue
Question No : 18
![Page 40: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/40.jpg)
c. Stack
Answer
![Page 41: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/41.jpg)
If every node u in Graph (G) is adjacent to
every other node v in G, it is called as _____
graph.
a. Directed Graph
b. Complete Graph
c. Connected Graph
d. Multi Graph
Question No : 19
![Page 42: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/42.jpg)
b. Complete Graph
Answer
![Page 43: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/43.jpg)
Bubble sort is an example of
a. Selection sort technique
b. Exchange sort technique
c. Quick sort technique
d. None of the options
Question No : 20
![Page 44: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/44.jpg)
b. Exchange sort technique
Answer
![Page 45: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/45.jpg)
How do you chose the best algorithm
among available algorithms to solve a
problem
a. Based on space complexity
b. Based on programming requirements
c. Based on time complexity
d. All the above
Question No : 21
![Page 46: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/46.jpg)
d. All the above
Answer
![Page 47: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/47.jpg)
Which of the following are called
descendants?
a. All the leaf nodes
b. Parents, grandparents
c. Root node
d. Children, grandchildren
Question No : 22
![Page 48: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/48.jpg)
d. Children, grandchildren
Answer
![Page 49: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/49.jpg)
Choose the limitation of an array from the
below options.
a. Memory Management is very poor
b. Searching is slower
c. Insertion and deletion are costlier
d. Insertion and Deletion is not possible
Question No : 23
![Page 50: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/50.jpg)
c. Insertion and deletion are costlier
◦ (It involves shifting rest of the elements)
Answer
![Page 51: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/51.jpg)
Areas where stacks are popularly used are.
a. Subroutines
b. Expression Handling
c. Recursion
d. All the above
Question No : 24
![Page 52: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/52.jpg)
d. All the above
Answer
![Page 53: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/53.jpg)
How would you implement queue using
stack(s)?
Question No : 25
![Page 54: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/54.jpg)
Use a temp stack
Data In into queue
◦ Push the element into the original stack
Data Out from queue
◦ Pop all the elements from stack into a temp stack
pop out the first element from the temp stack
Answer
![Page 55: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/55.jpg)
Write a C program to compare two linked
lists.
Question No : 26
![Page 56: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/56.jpg)
int
compare_linked_lists(struct
node *q, struct node *r){
static int flag;
if((q==NULL ) && (r==NULL)){
flag=1;
}
else{
if(q==NULL || r==NULL){
flag=0;
}
if(q->data!=r->data){
flag=0;
}
else{
compare_linked_lists(q-
>link,r->link);
}
}
return(flag);
}
Answer
![Page 57: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/57.jpg)
Write a C program to return the nth node
from the end of a linked list.
Question No : 27
![Page 58: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/58.jpg)
Suppose one needs to get to the 6th node from the end in the LL.
First, just keep on incrementing the first pointer (ptr1) till the number
of increments cross n (which is 6 in this case)
STEP 1 : 1(ptr1,ptr2) -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9 -> 10
STEP 2 : 1(ptr2) -> 2 -> 3 -> 4 -> 5 -> 6(ptr1) -> 7 -> 8 -> 9 -> 10
Now, start the second pointer (ptr2) and keep on incrementing it till
the first pointer (ptr1) reaches the end of the LL.
◦ STEP 3 : 1 -> 2 -> 3 -> 4(ptr2) -> 5 -> 6 -> 7 -> 8 -> 9 -> 10 (ptr1)
So here you have the 6th node from the end pointed to by ptr2!
Answer
![Page 59: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/59.jpg)
struct node {
int data;
struct node *next;
}mynode;
mynode * nthNode(mynode *head, int n /*pass 0 for last node*/) {
mynode *ptr1,*ptr2;
int count;
if(!head) {
return(NULL);
}
ptr1 = head;
ptr2 = head;
count = 0;
Answer
![Page 60: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/60.jpg)
while(count < n) {
count++;
if((ptr1=ptr1->next)==NULL) {
//Length of the linked list less than n. Error.
return(NULL);
} }
while((ptr1=ptr1->next)!=NULL) {
ptr2=ptr2->next;
}
return(ptr2);
}
Answer
![Page 61: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/61.jpg)
Write a C program to insert nodes into a
linked list in a sorted fashion?
Question No : 28
![Page 62: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/62.jpg)
Answer
// Special case code for the head endvoid linkedListInsertSorted(struct node** headReference, struct node* newNode){// Special case for the head endif (*headReference == NULL || (*headReference)->data >= newNode->data){newNode->next = *headReference;
The solution is to iterate down the list looking for the correct place to
insert the new node. That could be the end of the list, or a point just
before a node which is larger than the new node.
Let us assume the memory for the new node has already been
allocated and a pointer to that memory is being passed to this
function.
![Page 63: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/63.jpg)
Answer
*headReference = newNode;}
else {
// Locate the node before which the insertion is to happen!
struct node* current = *headReference;
while (current->next!=NULL && current->next->data < newNode->data){
current = current->next;
}
newNode->next = current->next;
current->next = newNode;
}
}
![Page 64: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/64.jpg)
Write a C program to remove duplicates
from a sorted linked list?
Question No : 29
![Page 65: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/65.jpg)
Answer
// Remove duplicates from a sorted list
void RemoveDuplicates(struct node* head) {
struct node* current = head;
if (current == NULL) return; // do nothing if the list is empty
// Compare current node with next node
while(current->next!=NULL)
{
As the linked list is sorted, we can start from the beginning of
the list and compare adjacent nodes.
When adjacent nodes are the same, remove the second one.
There's a tricky case where the node after the next node
needs to be noted before the deletion.
![Page 66: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/66.jpg)
Answer
if (current->data == current->next->data)
{
struct node* nextNext = current->next->next;
free(current->next);
current->next = nextNext;
}
else
{
current = current->next; // only advance if no
deletion
}
}
}
![Page 67: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/67.jpg)
Write a C program to find the depth or
height of a tree.
Question No : 30
![Page 68: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/68.jpg)
Answer
#define max(x,y) ((x)>(y)?(x):(y))
struct Bintree {
int element;
struct Bintree *left;
struct Bintree *right;
};
typedef struct Bintree* Tree;
int height(Tree T) {
if(!T)
return -1;
else
return (1 + max(height(T->left), height(T->right)))
}
![Page 69: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/69.jpg)
Write C code to determine if two trees are
identical
Question No : 31
![Page 70: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/70.jpg)
Answer
struct Bintree {
int element;
struct Bintree *left;
struct Bintree *right;
};
typedef struct Bintree* Tree;
int CheckIdentical( Tree T1, Tree T2 )
{
if(!T1 && !T2) // If both tree are NULL then return true
return 1;
![Page 71: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/71.jpg)
Answer
else if((!T1 && T2) || (T1 && !T2)) //If either of one is
NULL, return false
return 0;
else
return ((T1->element == T2->element) &&
CheckIdentical(T1->left, T2-i>left)
&& CheckIdentical(T1->right, T2->right));
// if element of both tree are same and left and right
tree is also same then both
trees are same
}
![Page 72: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/72.jpg)
Write a C code to create a copy of a Tree
Question No : 32
![Page 73: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/73.jpg)
Answer
mynode *copy(mynode *root)
{
mynode *temp;
if(root==NULL)return(NULL);
temp = (mynode *) malloc(sizeof(mynode));
temp->value = root->value;
temp->left = copy(root->left);
temp->right = copy(root->right);
return(temp);
}
![Page 74: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/74.jpg)
Which of the following are called siblingsa. Children of the same parent
b. All nodes in the given path upto leaf node
c. All nodes in a sub tree
d. Children, Grand Children
Question No : 33
![Page 75: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/75.jpg)
a. Children of the same parent
Answer
![Page 76: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/76.jpg)
Linked List can grow and shrink in size
dynamically at __________ .
a. Runtime
b. Compile time
Question No : 34
![Page 77: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/77.jpg)
a. Runtime
Answer
![Page 78: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/78.jpg)
The postfix of A+(B*C) is
a. ABC*+
b. AB+C*
c. ABC+*
d. +A*BC
Question No : 35
![Page 79: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/79.jpg)
a. ABC*+
Answer
![Page 80: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/80.jpg)
Data structure using sequential allocation is
called
a. Linear Data Structure
b. Non-Linear Data Structure
c. Non-primitive Data Structure
d. Sequence Data Structure
Question No : 36
![Page 81: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/81.jpg)
a. Linear Data Structure
Answer
![Page 82: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/82.jpg)
A linear list in which elements can be added
or removed at either end but not in the
middle is known as
a. Tree
b. Queue
c. Dequeue
d. Stack
Question No : 37
![Page 83: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/83.jpg)
a. Dequeue
Answer
![Page 84: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/84.jpg)
The average number of key comparisons
done in a successful sequential search in list
of length n is
a. n+1/2
b. n-1/2
c. n/2
d. log n
Question No : 38
![Page 85: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/85.jpg)
a. n+1/2
Answer
![Page 86: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/86.jpg)
A full binary tree with n leaves contains
__________
a. nlog2n nodes
b. 2^n nodes
c. (2n-1) nodes
d. n nodes
Question No : 39
![Page 87: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/87.jpg)
c. (2n-1) nodes
Answer
![Page 88: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/88.jpg)
If a node has positive outdegree and zero
indegree, it is called a __________.
a. Source
b. Sink
c. outdegree node
d. indegree node
Question No : 40
![Page 89: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/89.jpg)
a. Source
Answer
![Page 90: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/90.jpg)
The postfix notation for ((A+B)^C-(D-
E)^(F+G)) is
a. AB + C*DE—FG+^
b. ^-*+ABC –DE + FG
c. ^+AB*C—DE^+FG
d. ABC + CDE *-- FG +^
Question No : 41
![Page 91: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/91.jpg)
a. AB + C*DE—FG+^
Answer
![Page 92: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/92.jpg)
If you are using C language to implement
the heterogeneous linked list, what pointer
type will you use?
Question No : 42
![Page 93: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/93.jpg)
The heterogeneous linked list contains
different data types in its nodes and we
need a pointer to connect them.
It is not possible to use ordinary pointers
for this.
So we use void pointer.
Void pointer is capable of storing pointer to
any
type of data (eg., integer or character) as it
is a generic pointer type.
Answer
![Page 94: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/94.jpg)
What is heap sort?
Question No : 43
![Page 95: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/95.jpg)
A Heap is an almost complete binary tree. In this tree, if the
maximum level is i, then, upto the (i-1)th level should be complete.
At level i, the number of nodes can be less than or equal to 2^i. If
the number of nodes is less than 2^i, then the nodes in that level
should be completely filled, only from left to right
The property of an ascending heap is that, the root is the lowest
and given any other node i, that node should be less than its left
child and its right child. In a descending heap, the root should be
the highest and given any other node i, that node should be
greater than its left child and right child.
Answer
![Page 96: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/96.jpg)
To sort the elements, one should create the heap first. Once
the heap is created, the root has the highest value. Now we
need to sort the elements in ascending order. The root can not
be exchanged with the nth element so that the item in the nth
position is sorted. Now, sort the remaining (n-1) elements. This
can be achieved by reconstructing the heap for (n-1) elements.
Answer
![Page 97: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/97.jpg)
heapsort() {
n = array(); // Convert the tree
into an array.
makeheap(n); // Construct the
initial heap.
for(i=n; i>=2; i--) {
swap(s[1],s[i]);
heapsize--;
keepheap(i);
}
}
makeheap(n) {
heapsize=n;
for(i=n/2; i>=1; i--)
keepheap(i);
}
keepheap(i) {
l = 2*i;
r = 2*i + 1;
p = s[l];
q = s[r];
t = s[i];
Answer
![Page 98: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/98.jpg)
Answer
if(l<=heapsize && p->value > t->value)
largest = l;
else
largest = i;
m = s[largest];
if(r<=heapsize && q->value > m->value)
largest = r;
if(largest != i) {
swap(s[i], s[largest]);
keepheap(largest);
}
}
![Page 99: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/99.jpg)
Implement the bubble sort algorithm. How
can it be improved? Write the code for
selection sort, quick sort, insertion sort.
Question No : 44
![Page 100: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/100.jpg)
Bubble sort algorithm
Answer
void bubble_sort(int a[], int n){ int i, j, temp; for(j = 1; j < n; j++) { for(i = 0; i < (n - j); i++) { if(a[i] >= a[i + 1]) { //Swap a[i], a[i+1] } } }}
![Page 101: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/101.jpg)
void bubble_sort(int a[], int n){ int i, j, temp; int flag; for(j = 1; j < n; j++) { flag = 0; for(i = 0; i < (n - j); i++) { if(a[i] >= a[i + 1]) { //Swap a[i], a[i+1] flag = 1; } } if(flag==0)break; }}
To improvise this basic algorithm, keep track of whether a particular pass results in any swap or not.
If not, you can break out without wasting more cycles.
Answer
![Page 102: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/102.jpg)
Selection Sort Algorithm
void selection_sort(int a[],
int n) {
int i, j, small, pos, temp;
for(i = 0; i < (n - 1); i++)
{
small = a[i];
pos = i;
for(j = i + 1; j < n; j++)
{
if(a[j] < small)
{
small = a[j];
pos = j;
}
}
temp = a[pos];
a[pos] = a[i];
a[i] = temp;
}
}
Answer
![Page 103: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/103.jpg)
Quick Sort Algorithm
int partition(int a[], int low, int high)
{
int i, j, temp, key;
key = a[low];
i = low + 1;
j = high;
while(1) {
while(i < high && key >= a[i])i++;
while(key < a[j])j--;
if(i < j) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
else {
temp = a[low];
a[low] = a[j];
a[j] = temp;
return(j);
}
}
}
Answer
![Page 104: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/104.jpg)
Answer
void quicksort(int a[], int low, int high) {
int j;
if(low < high) {
j = partition(a, low, high);
quicksort(a, low, j - 1);
quicksort(a, j + 1, high);
}
}
int main() {
// Populate the array a
quicksort(a, 0, n - 1);
}
![Page 105: Data Structure](https://reader033.vdocument.in/reader033/viewer/2022061110/5453b88faf7959aa678b6552/html5/thumbnails/105.jpg)
Insertion Sort Algorithm
Answer
void insertion_sort(int a[], int n){ int i, j, item; for(i = 0; i < n; i++) { item = a[i]; j = i - 1; while(j >=0 && item < a[j]) { a[j + 1] = a[j]; j--; } a[j + 1] = item; }}