Академический Документы
Профессиональный Документы
Культура Документы
A data structure is a way of storing data in a computer so that it can be used efficiently.
Different kinds of data structures are suited to different kinds of applications.
Answer: A data structure is a way of organizing data that considers not only the items
stored, but also their relationship to each other. Advance knowledge about the
relationship between data items allows designing of efficient algorithms for the
manipulation of data.
2. List out the areas in which data structures are applied extensively?
•Compiler Design,
•Operating System,
•Database Management System,
•Statistical analysis package,
•Numerical Analysis,
•Graphics,
•Artificial Intelligence,
•Simulation
3. What are the major data structures used in the following areas : RDBMS, Network
data model & Hierarchical data model.
Answer: The heterogeneous linked list contains different data types in its nodes and we
need a link, pointer to connect them. It is not possible to use ordinary pointers for this. So
we go for void pointer. Void pointer is capable of storing pointer to any type as it is a
generic pointer type.
1
Answer: Two. One queue is used for actual storing of data and another for storing
priorities.
Answer: Stack. Because of its LIFO (Last In First Out) property it remembers its 'caller'
so knows whom to return 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.
7. What are the notations used in Evaluation of Arithmetic Expressions using prefix
and postfix forms?
Postfix Notation: AB + C * DE - - FG + ^
How many null branches are there in a binary tree with 20 nodes?
Answer: 21
2
• Straight merging,
• Natural merging,
• Polyphase sort,
• Distribution of Initial runs.
Answer: 1014
For example, consider a tree with 3 nodes(n=3), it will have the maximum combination of 5
different (ie, 23 - 3 = 5) trees.
i ii iii iv v
In general:
If there are n nodes, there exist 2n-n different trees.
List out few of the applications that make use of Multilinked Structures?
• Sparse matrix,
• Index generation.
What is the type of the algorithm used in solving the 8 Queens problem?
Answer: Backtracking
3
In an AVL tree, at what condition the balancing is to be done?
Answer: If the 'pivotal value' (or the 'Height factor') is greater than 1 or less than -1.
What is the bucket size, when the overlapping and collision occur at same time?
Answer: One. If there is only one entry possible in the bucket, when the collision occurs, there is
no way to accommodate the colliding value. This results in the overlapping of values.
Traverse the given tree using Inorder, Preorder and Postorder traversals.
Answer:
• Inorder : D H B E A F C I G J
• Preorder: A B D H E C F G I J
• Postorder: H D E B F I J G C A
There are 8, 15, 13, 14 nodes were there in 4 different trees. Which of them could have
formed a full binary tree?
Answer: 15.
In general:
There are 2n-1 nodes in a full binary tree.
In the given binary tree, using array you can store the node 4 at which location?
4
Answer: At location 6
1 2 3 - - 4 - - 5
where LCn means Left Child of node n and RCn means Right Child of node n
Answer:
Sorting takes place from the pivot value, which is the first value of the given elements, this is
marked bold. The values at the left pointer and right pointer are indicated using L and R
respectively.
65 70L 75 80 85 60 55 50 45R
Since pivot is not yet changed the same process is continued after interchanging the values at L
and R positions
65 45 75L 80 85 60 55 50R 70
65 45 50 80L 85 60 55R 75 70
65 45 50 55 85L 60R 80 75 70
65 45 50 55 60R 85L 80 75 70
When the L and R pointers cross each other the pivot value is interchanged with the value at
right pointer. If the pivot is changed it means that the pivot has occupied its original position in
5
the sorted order (shown in bold italics) and hence two different arrays are formed, one from start
of the original array to the pivot position-1 and the other from pivot position+1 to end.
45 50 55 60 65 70 75 80 85
Answer:
• BFS: A X G H P E M Y J
• DFS: A X H P E Y M J G
23. Classify the Hashing Functions based on the various methods by which the key
value is found.
• Direct method
• Subtraction method
• Modulo-Division method
• Digit-Extraction method
• Mid-Square method
• Folding method
• Pseudo-random method
6
24. What are the types of Collision Resolution Techniques and the methods used in each
of the type?
Answer: B+ tree. Because in B+ tree, all the data is stored only in leaf nodes, that makes
searching easier. This corresponds to the records that shall be stored in leaf nodes.
26. Draw the B-tree of order 3 created by inserting the following data arriving in
sequence - 92 24 6 7 11 8 22 4 5 16 19 20 78
Answer:
Answer: A spanning tree is a tree associated with a network. All the nodes of the graph
appear on the tree once. A minimum spanning tree is a spanning tree organized so that
the total edge weight between nodes is minimized.
28. Does the minimum spanning tree of a graph give the shortest distance between any
2 specified nodes?
Answer: No. Minimal spanning tree assures that the total weight of the tree is kept at its
minimum. But it doesn't mean that the distance between any two nodes involved in the
minimum-spanning tree is minimum.
7
29. Convert the given graph with weighted edges to minimal spanning tree.
Answer:
8
01 STUDENT_REC.
02 NAME.
03 FIRST_NAME PIC X(10).
03 LAST_NAME PIC X(10).
02 YEAR_OF_STUDY.
03 FIRST_SEM PIC XX.
03 SECOND_SEM PIC XX.
Answer:
2. List out the areas in which data structures are applied extensively?
? Compiler Design,
? Operating System,
? Database Management System,
? Statistical analysis package,
? Numerical Analysis,
? Graphics,
? Artificial Intelligence,
? Simulation
3. What are the major data structures used in the following areas : RDBMS,
Network data model & Hierarchical data model.
? RDBMS – Array (i.e. Array of structures)
9
? Network data model – Graph
? Hierarchical data model – Trees
(d) Deletion.
Using insertion we can perform insertion sort, using selection we can perform
selection sort, using exchange we can perform the bubble sort (and other
similar sorting methods). But no sorting method can be done just using
deletion.
10
It will have only 6 (ie,5+1) null branches. In general,
A binary tree with n nodes has exactly n+1 null nodes.
i ii iii iv v
In general:
If there are n nodes, there exist 2n-n different trees.
14. List out few of the applications that make use of Multilinked Structures?
? Sparse matrix,
? Index generation.
16. What is the type of the algorithm used in solving the 8 Queens problem?
Backtracking
18. What is the bucket size, when the overlapping and collision occur at same
time?
One. If there is only one entry possible in the bucket, when the collision
occurs, there is no way to accommodate the colliding value. This results in
the overlapping of values.
19. Traverse the given tree using Inorder, Preorder and Postorder traversals.
? Inorder : D H B E A F C I G J
? Preorder: A B D H E C F G I J
? Postorder: H D E B F I J G C A
20. There are 8, 15, 13, 14 nodes were there in 4 different trees. Which of
them could have formed a full binary tree?
15.
In general:
There are 2n-1 nodes in a full binary tree.
By the method of elimination:
Full binary trees contain odd number of nodes. So there cannot be full binary
trees with 8 or 14 nodes, so rejected. With 13 nodes you can form a complete
binary tree but not a full binary tree. So the correct answer is 15.
Note:
Full and Complete binary trees are different. All full binary trees are complete
12
binary trees but not vice versa.
21. In the given binary tree, using array you can store the node 4 at which
location?
At location 6
123--4--5
where LCn means Left Child of node n and RCn means Right Child of node n
65 70 75 80 85 60 55 50 45
Sorting takes place from the pivot value, which is the first value of the given
elements, this is marked bold. The values at the left pointer and right pointer
are indicated using L and R respectively.
65 70L 75 80 85 60 55 50 45R
Since pivot is not yet changed the same process is continued after
interchanging the values at L and R positions
65 45 75 L 80 85 60 55 50 R 70
65 45 50 80 L 85 60 55 R 75 70
65 45 50 55 85 L 60 R 80 75 70
65 45 50 55 60 R 85 L 80 75 70
When the L and R pointers cross each other the pivot value is interchanged
with the value at right pointer. If the pivot is changed it means that the pivot
has occupied its original position in the sorted order (shown in bold italics)
and hence two different arrays are formed, one from start of the original
array to the pivot position-1 and the other from pivot position+1 to end.
60 L 45 50 55 R 65 85 L 80 75 70 R
55 L 45 50 R 60 65 70 R 80 L 75 85
50 L 45 R 55 60 65 70 80 L 75 R 85
13
In the next pass we get the sorted form of the array.
45 50 55 60 65 70 75 80 85
23. For the given graph, draw the DFS and BFS?
? BFS: A X G H P E M Y J
? DFS: A X H P E Y M J G
24. Classify the Hashing Functions based on the various methods by which
the key value is found.
? Direct method,
? Subtraction method,
? Modulo-Division method,
? Digit-Extraction method,
? Mid-Square method,
? Folding method,
? Pseudo-random method.
25. What are the types of Collision Resolution Techniques and the methods
used in each of the type?
? Open addressing (closed hashing),
The methods used include:
Overflow block,
? Closed addressing (open hashing)
The methods used include:
Linked list,
Binary tree…
26. In RDBMS, what is the efficient data structure used in the internal storage
representation?
B+ tree. Because in B+ tree, all the data is stored only in leaf nodes, that
makes searching easier. This corresponds to the records that shall be stored
14
in leaf nodes.
27. Draw the B-tree of order 3 created by inserting the following data arriving
in sequence – 92 24 6 7 11 8 22 4 5 16 19 20 78
28. Of the following tree structure, which is, efficient considering space and
time complexities?
(a) Incomplete Binary Tree
(b) Complete Binary Tree
(c) Full Binary Tree
30. Does the minimum spanning tree of a graph give the shortest distance
between any 2 specified nodes?
No.
Minimal spanning tree assures that the total weight of the tree is kept at its
minimum. But it doesn’t mean that the distance between any two nodes
involved in the minimum-spanning tree is minimum.
31. Convert the given graph with weighted edges to minimal spanning tree.
15
the equivalent minimal spanning tree is:
32. Which is the simplest file structure?
(a) Sequential
(b) Indexed
(c) Random
(a) Sequential
35. For the following COBOL code, draw the Binary tree?
01 STUDENT_REC.
02 NAME.
03 FIRST_NAME PIC X(10).
03 LAST_NAME PIC X(10).
02 YEAR_OF_STUDY.
03 FIRST_SEM PIC XX.
03 SECOND_SEM PIC XX.
Data structures are used to store data in a computer in an organized fashion. Different types of
data structures are:-
16
Stack- Works in first in last out order. The element inserted first in stack is removed last.
Queue- First in First out order. The element inserted first is removed first.
Trees- Stores data in a non linear fashion with one root node and sub nodes.
The scheme of organizing related information is known as ‘data structure’. The types of data
structure are:
Lists: A group of similar items with connectivity to the previous or/and next data items.
Arrays: A set of homogeneous values
Records: A set of fields, where each field consists of data belongs to one data type.
Trees: A data structure where the data is organized in a hierarchical structure. This type of data
structure follows the sorted order of insertion, deletion and modification of data items.
Tables: Data is persisted in the form of rows and columns. These are similar to records, where
the result or manipulation of data is reflected for the whole table.
Linear data fashion- Linked list is an example of linear data storage or structure. Linked list
stores data in an organized a linear fashion. They store data in the form of a list.
Non Linear data structure- Tree data structure is an example of a non linear data structure. A tree
has one node called as root node that is the starting point that holds data and links to other nodes.
Linear data structure: A linear data structure traverses the data elements sequentially, in which
only one data element can directly be reached. Ex: Arrays, Linked Lists
Non-Linear data structure: Every data item is attached to several other data items in a way that
is specific for reflecting relationships. The data items are not arranged in a sequential structure.
Ex: Trees, Graphs
17
Define in brief an array. What are the types of array
operations?
An array is an arrangement of data arranged in a systematic order. An array usually has rows and
columns. Each element of an array is accessed using the row and column id.
Array operations:-
Arrays are used for storing the data until the application expires in the main memory of the
computer system. So that, the elements can be accessed at any time. The operations are:
- Adding elements
- Sorting elements
- Searching elements
- Re-arranging the elements
- Performing matrix operations
- Pre-fix and post-fix operations
Matrix is a way to store data in an organized form in the form of rows and columns. Matrices are
usually used in computer graphics to project 3-dimensional space onto a 2-dimensional screen.
Matrices in the form of arrays are used to store data in an organized form.
18
What is a matrix? Explain its uses with an example
A matrix is a representation of certain rows and columns, to persist homogeneous data. It can
also be called as double-dimensioned array.
Uses:
Properties of an algorithm:-
Types:-
Types of algorithms are categorized based on the context they are spoken about. Some
commonly used:
Brute force:- An extremity raw method that aims to finds variety of solutions and which ones the
best.
Reduction:- Tries and converts the given problem to a simpler and a better known problem
whose complexity is not dominated by the resulting reduced algorithm's. Linear programmings,
Graphs, random are the other types of algorithms.
Algorithm: A step by step process to get the solution for a well defined problem.
19
Properties of an algorithm:
Types of algorithms:
The process of attempting for solving a problem which finds successive approximations for
solution, starting from an initial guess. The result of repeated calculations is a sequence of
approximate values for the quantities of interest.
A recursive algorithm calls itself which usually passes the return value as a parameter to the
algorithm again. This parameter is the input while the return value is the output.
20
Data structure - What is an recursive algorithm? - July 31,
2009, 10:55 am by Vidya Sagar
Recursive algorithm is a method of simplification that divides the problem into sub-problems of
the same nature. The result of one recursion is the input for the next recursion. The repletion is in
the self-similar fashion. The algorithm calls itself with smaller input values and obtains the
results by simply performing the operations on these smaller values. Generation of factorial,
Fibonacci number series are the examples of recursive algorithms.
In Huffman Algorithm, a set of nodes assigned with values if fed to the algorithm.
Initially 2 nodes are considered and their sum forms their parent node. When a new element is
considered, it can be added to the tree. Its value and the previously calculated sum of the tree are
used to form the new node which in turn becomes their parent.
Quick sort – Divides the array elements in two halves or partitions. On dividing, the quick sort
procedure is recursively called to sort the two halves. A “pivot” is used as the center point and
elements less than the pivot are moved to the left or before the pivot and elements greater than
pivot are moved to the right.
Merge sort- Merge sort is based on divide and conquer mechanism. The array elements are
divided into partitions (n/2). Each partition is sorted recursively and then merged.
Quick sort employs the ‘divide and conquer’ concept by dividing the list of elements into two
sub elements
Answer
A merge sort algorithm that splits the items to be sorted into two groups, recursively sorts each
group, and merges them into a final, sorted sequence. Run time is T(n log n).
Bubble Sort: - The simplest sorting algorithm. It takes two array elements at a time, compares
them and swaps their positions if element on left is greater than right. Divides the array elements
in two halves or partitions. On dividing, the quick sort procedure is recursively called to sort the
two halves. A “pivot” is used as the center point and elements less than the pivot are moved to
the left or before the pivot and elements greater than pivot are moved to the right.
Data structure - What is Bubble Sort and Quick sort? - July 31,
2009, 10:55 am by Vidya Sagar
Bubble Sort: The simplest sorting algorithm. It involves the sorting the list in a repetitive
fashion. It compares two adjacent elements in the list, and swaps them if they are not in the
designated order. It continues until there are no swaps needed. This is the signal for the list that is
sorted. It is also called as comparison sort as it uses comparisons.
22
Quick Sort: The best sorting algorithm which implements the ‘divide and conquer’ concept. It
first divides the list into two parts by picking an element a ’pivot’. It then arranges the elements
those are smaller than pivot into one sub list and the elements those are greater than pivot into
one sub list by keeping the pivot in its original place.
Stack is a collection of objects that works in LIFO (Last in First out) mechanism while Queue is
FIFO (First in First out). This means that the object that is inserted first is removed last in a stack
while an object that is inserted first is removed first in a queue.
Stack can be described as a pointer as it contains a head pointer always pointing to the topmost
element of the stack. The Push and Pop operations are performed using this pointer.
A stack is represented as a pointer. The reason is that, it has a head pointer which points to the
top of the stack. The stack operations are performed using the head pointer. Hence, the stack can
be described as a pointer.
Recursion is an approach in which a function calls itself with an argument. Upon reaching a
termination condition, the control returns to the calling function.
23
Explain the terms Base case, Recursive case, Binding
Time, Run-Time Stack and Tail Recursion.
Base case: A case in recursion, in which the answer is known when the termination for a
recursive condition is to unwind back.
Run-time Stack: A run time stack used for saving the frame stack of a function when every
recursion or every call occurs.
Tail Recursion: It is a situation where a single recursive call is consisted by a function, and it is
the final statement to be executed. It can be replaced by iteration.
Base case: - In this case, the output is known or when using recursion, the termination condition
which restarts the function is called as base case.
Binding time:-
Run-Time Stack: - Run Time stack contains return address, local variables and return value if
any of a recursive function call.
Tail Recursion: - Tail recursion consists of one recursive call with the last statement to be
executed. To find factorial of a given number is an example of tail recursion. .
Yes, it is possible to insert different types of elements in a stack. Elements in a stack can be
inserted using the “Push” operation. This operation writes an element on the stack and moving
the pointer.
24
Data structure - Is it possible to insert different type of
elements in a stack? How? - July 31, 2009, 10:55 am by
Vidya Sagar
Different elements can be inserted into a stack. This is possible by implementing union /
structure data type. It is efficient to use union rather than structure, as only one item’s memory is
used at a time.
A linked list a linear arrangement of data. It allows the programmer to insert data anywhere
within the list. The pointer of the list always points to the first node and can be moved
programmatically to insert, delete or update any data. Each node in the list contains a data value
and the address or a reference to the adjoining node.
Different sorting algorithms can be used to sort the linked list. Merge sort is normally used to
sort the linked list.
A linked list is a dynamic data structure. It consists of a sequence of data elements and a
reference to the next record in the sequence. Stacks, queues, hash tables, linear equations, prefix
and post fix operations. The order of linked items is different that of arrays. The insertion or
deletion operations are constant in number.
25
How would you sort a linked list?
Single linked list- Here, the pointer can only move in one direction.
Double linked list- Here, the pointer can move in forward or backward direction.
Circular linked list- Here, the address of the last node points to the first node of the list so as to
make it a circular linked list.
Data structure - How would you sort a linked list? - July 31,
2009, 10:55 am by Vidya Sagar
Step 1: Compare the current node in the unsorted list with every element in the rest of the list. If
the current element is more than any other element go to step 2 otherwise go to step 3.
Step 2: Position the element with higher value after the position of the current element. Compare
the next element. Go to step1 if an element exists, else stop the process.
Step 3: If the list is already in sorted order, insert the current node at the end of the list. Compare
the next element, if any and go to step 1 or quit.
Sequential search searches for elements in an array sequentially until the element is found. The
average number of comparisons can be n+1/2.
Sequential search: Searching an element in an array, the search starts from the first element till
the last element.
The average number of comparisons in a sequential search is (N+1)/2 where N is the size of the
array. If the element is in the 1st position, the number of comparisons will be 1 and if the
element is in the last position, the number of comparisons will be N.
26
What is binary searching and Fibonacci search?
Binary search is used to find an element of a sorted list only. For the element to be searched, the
middle value is first compared. If it is same as the element to be sought, the search stops. Else,
the same mechanism of search is performed on the left or right side elements of the middle
elements depending on whether the sought value is greater than or less than the middle element.
Fibonacci search:- Fibonacci search is used to search an element of a sorted array with the help
of Fibonacci numbers. It studies the locations whose addresses have lower dispersion. Fibonacci
number is subtracted from the index thereby reducing the size of the list.
Binary Search: Binary search is the process of locating an element in a sorted list. The search
starts by dividing the list into two parts. The algorithm compares the median value. If the search
element is less than the median value, the top list only will be searched, after finding the middle
element of that list. The process continues until the element is found or the search in the top list
is completed. The same process is continued for the bottom list, until the element is found or the
search in the bottom list is completed. If an element is found that must be the median value.
Fibonacci Search: Fibonacci search is a process of searching a sorted array by utilizing divide
and conquer algorithm. Fibonacci search examines locations whose addresses have lower
dispersion. When the search element has non-uniform access memory storage, the Fibonacci
search algorithm reduces the average time needed for accessing a storage location.
Answer
An array is a series of elements. These elements are of the same type. Each
element can be individually accessed using an index. For e.g an array of integers.
Array elements are stored one after another (contiguous) in the memory. An
array can have more than one dimension. First element in an array starts with 0.
Answer
An array with two dimensions is called as a two-dimensional array. It is also
called as a matrix. In C, a two dimensional array is initialized as int
arr[nb_of_rows] [nb_of_columns]. Hence, two dimensional arrays can be
considered as a grid. An element in a two dimensional can be accessed by
27
mentioning its row and column. If the array has 20 integer values, it will occupy
80 bytes in memory (assuming 4 bytes for an integer). All of the bytes are in
consecutive memory locations, the first row occupying the first 20 bytes, the
second the next 20, and so on.
Answer
An array of pointers is an array consisting of pointers. Here, each pointer points
to a row of the matrix or an element. E.g char *array [] = {“a”, “b”}. This is an
array of pointers to to characters.
GRAPHS
36. A structure for representing a graph in which the presence of arcs between
nodes is is indicated by an entry in a matrix is ________
a. Breadth-first search
b. Depth-first search
c. Adjacency matrix
d. Adjacency list
Ans. c
37. A structure for representing a graph in which the arcs are stored as lists of
connections between nodes is ________
a. Breadth-first search
b. Depth-first search
c. Adjacency matrix
d. Adjacency list
Ans. d
40. For sparse graphs,the amount of memory required to store an adjacency list is
______
a. O(V)
b. O(V²)
c. O(V+E)
d. O(V*E)
Ans. c
41. A technique that picks the next adjacent unvisited vertex until reaching a vertex
that has no unvisited adjacent vertices is ________
a. Breadth-first search
b. Depth-first search
c. Adjacency matrix
d. Adjacency list
Ans. b
29
44. If you perform a Depth First Search in a binary tree, what traversal will you
obtain?
a) pre-order
b) in-order
c) post-order
d) Eulerian
Ans. a
45. Given a graph G with n nodes, you want to find the node that has maximum
degree.
What would be the complexity using an adjacency matrix?
a) O(1) b) O(log n) c) O(n) d) O(n log n) e) O(n2)
Ans. e
46. Given a graph G with n nodes and m edges, you want to find all the nodes with
degree 5. What would be the complexity using an adjacency list (where the degree
of
each node is not stored)?
a) O(n) b) O(log m) c) O(log n) d) O(m) e) O(n logn )
Ans. d
30