Ds Viva Q
Ds Viva Q
Ds Viva Q
8 ) What is a queue?
A queue is a data structure that can simulate a list or stream of
data. In this structure, new elements are inserted at one end,
and existing elements are removed from the other end.
9) What are binary trees?
A binary tree is one type of data structure that has two nodes,
a left node, and a right node. In programming, binary trees are
an extension of the linked list structures.
10) Which data structures are applied when dealing with
a recursive function?
Recursion, is a function that calls itself based on a terminating
condition, makes use of the stack. Using LIFO, a call to a
recursive function saves the return address so that it knows
how to return to the calling function after the call terminates.
11) What is a stack?
A stack is a data structure in which only the top element can be
accessed. As data is stored in the stack, each data is pushed
downward, leaving the most recently added data on top.
12) Explain Binary Search Tree
A binary search tree stores data in such a way that they can be
retrieved very efficiently. The left subtree contains nodes
whose keys are less than the node’s key value, while the right
subtree contains nodes whose keys are greater than or equal
to the node’s key value. Moreover, both subtrees are also
binary search trees.
13) What are multidimensional arrays?
Multidimensional arrays make use of multiple indexes to store
data. It is useful when storing data that cannot be represented
using single dimensional indexing, such as data representation
in a board game, tables with data stored in more than one
column.
14) Are linked lists considered linear or non-linear data
structures?
It depends on where you intend to apply linked lists. If you
based it on storage, a linked list is considered non-linear. On
the other hand, if you based it on access strategies, then a
linked list is considered linear.
15) How does dynamic memory allocation help in
managing data?
Apart from being able to store simple structured data types,
dynamic memory allocation can combine separately allocated
structured blocks to form composite structures that expand and
contract as needed.
16) What is FIFO?
FIFO stands for First-in, First-out, and is used to represent how
data is accessed in a queue. Data has been inserted into the
queue list the longest is the one that is removed first.
17) What is an ordered list?
An ordered list is a list in which each node’s position in the list
is determined by the value of its key component, so that the
key values form an increasing sequence, as the list is
traversed.
18) What is merge sort?
Merge sort, is a divide-and-conquer approach for sorting the
data. In a sequence of data, adjacent ones are merged and
sorted to create bigger sorted lists. These sorted lists are then
merged again to form an even bigger sorted list, which
continues until you have one single sorted list.
19) Differentiate NULL and VOID
Null is a value, whereas Void is a data type identifier. A
variable that is given a Null value indicates an empty value.
The void is used to identify pointers as having no initial size.
20) What is the primary advantage of a linked list?
A linked list is an ideal data structure because it can be
modified easily. This means that editing a linked list works
regardless of how many elements are in the list.
21) What is the difference between a PUSH and a POP?
Pushing and popping applies to the way data is stored and
retrieved in a stack. A push denotes data being added to it,
meaning data is being “pushed” into the stack. On the other
hand, a pop denotes data retrieval, and in particular, refers to
the topmost data being accessed.
22) What is a linear search?
A linear search refers to the way a target key is being searched
in a sequential data structure. In this method, each element in
the list is checked and compared against the target key. The
process is repeated until found or if the end of the file has been
reached.
23) How does variable declaration affect memory
allocation?
The amount of memory to be allocated or reserved would
depend on the data type of the variable being declared. For
example, if a variable is declared to be of integer type, then 32
bits of memory storage will be reserved for that variable.
24) What is the advantage of the heap over a stack?
The heap is more flexible than the stack. That’s because
memory space for the heap can be dynamically allocated and
de-allocated as needed. However, the memory of the heap can
at times be slower when compared to that stack.
25) What is a postfix expression?
A postfix expression is an expression in which each operator
follows its operands. The advantage of this form is that there is
no need to group sub-expressions in parentheses or to consider
operator precedence.
26) What is Data abstraction?
Data abstraction is a powerful tool for breaking down complex
data problems into manageable chunks. This is applied by
initially specifying the data objects involved and the operations
to be performed on these data objects without being overly
concerned with how the data objects will be represented and
stored in memory.
27) How do you insert a new item in a binary search
tree?
Assuming that the data to be inserted is a unique value (that
is, not an existing entry in the tree), check first if the tree is
empty. If it’s empty, just insert the new item in the root node.
If it’s not empty, refer to the new item’s key. If it’s smaller
than the root’s key, insert it into the root’s left subtree,
otherwise, insert it into the root’s right subtree.
28) How does a selection sort work for an array?
The selection sort is a fairly intuitive sorting algorithm, though
not necessarily efficient. In this process, the smallest element
is first located and switched with the element at subscript zero,
thereby placing the smallest element in the first position.
The smallest element remaining in the subarray is then located
next to subscripts 1 through n-1 and switched with the element
at subscript 1, thereby placing the second smallest element in
the second position. The steps are repeated in the same
manner till the last element.
29) How do signed and unsigned numbers affect
memory?
In the case of signed numbers, the first bit is used to indicate
whether positive or negative, which leaves you with one bit
short. With unsigned numbers, you have all bits available for
that number. The effect is best seen in the number range
(an unsigned 8-bit number has a range 0-255, while the 8-bit
signed number has a range -128 to +127.
30) What is the minimum number of nodes that a binary
tree can have?
A binary tree can have a minimum of zero nodes, which occurs
when the nodes have NULL values. Furthermore, a binary tree
can also have 1 or 2 nodes.
31) What are dynamic data structures?
Dynamic data structures are structures that expand and
contract as a program runs. It provides a flexible means of
manipulating data because it can adjust according to the size of
the data.
32) In what data structures are pointers applied?
Pointers that are used in linked list have various applications in
the data structure. Data structures that make use of this
concept include the Stack, Queue, Linked List and Binary Tree.
33) Do all declaration statements result in a fixed
reservation in memory?
Most declarations do, with the exemption of pointers. Pointer
declaration does not allocate memory for data, but for the
address of the pointer variable. Actual memory allocation for
the data comes during run-time.
34) What are ARRAYs?
When dealing with arrays, data is stored and retrieved using an
index that refers to the element number in the data sequence.
This means that data can be accessed in any order. In
programming, an array is declared as a variable having a
number of indexed elements.
35) What is the minimum number of queues needed
when implementing a priority queue?
The minimum number of queues needed in this case is two.
One queue is intended for sorting priorities while the other
queue is used for actual storage of data.
36) Which sorting algorithm is considered the fastest?
There are many types of sorting algorithms: quick sort, bubble
sort, balloon sort, radix sort, merge sort, etc. Not one can be
considered the fastest because each algorithm is designed for a
particular data structure and data set. It would depend on the
data set that you would want to sort.
37) Differentiate STACK from ARRAY.
Stack follows a LIFO pattern. It means that data access follows
a sequence wherein the last data to be stored when the first
one to be extracted. Arrays, on the other hand, does not follow
a particular order and instead can be accessed by referring to
the indexed element within the array.
38) Give a basic algorithm for searching a binary search
tree.
1. if the tree is empty, then the target is not in the tree,
end search
2. if the tree is not empty, the target is in the tree
3. check if the target is in the root item
4. if a target is not in the root item, check if a target is
smaller than the root’s value
5. if a target is smaller than the root’s value, search the left
subtree
6. else, search the right subtree
39) What is a dequeue?
A dequeue is a double-ended queue. This is a structure wherein
elements can be inserted or removed from either end.
40) What is a bubble sort and how do you perform it?
A bubble sort is one sorting technique that can be applied to
data structures such as an array. It works by comparing
adjacent elements and exchanges their values if they are out of
order. This method lets the smaller values “bubble” to the top
of the list, while the larger value sinks to the bottom.
41) What are the parts of a linked list?
A linked list typically has two parts: the head and the tail.
Between the head and tail lie the actual nodes. All these nodes
are linked sequentially.
42) How does selection sort work?
Selection sort works by picking the smallest number from the
list and placing it at the front. This process is repeated for the
second position towards the end of the list. It is the simplest
sort algorithm.
43) What is a graph?
A graph is one type of data structure that contains a set of
ordered pairs. These ordered pairs are also referred to as
edges or arcs and are used to connect nodes where data can
be stored and retrieved.
44) Differentiate linear from a nonlinear data structure.
The linear data structure is a structure wherein data elements
are adjacent to each other. Examples of linear data structure
include arrays, linked lists, stacks, and queues. On the other
hand, a non-linear data structure is a structure wherein each
data element can connect to more than two adjacent data
elements. Examples of nonlinear data structure include trees
and graphs.
45) What is an AVL tree?
An AVL tree is a type of binary search tree that is always in a
state of partially balanced. The balance is measured as a
difference between the heights of the subtrees from the root.
This self-balancing tree was known to be the first data
structure to be designed as such.
46) What are doubly linked lists?
Doubly linked lists are a special type of linked list wherein
traversal across the data elements can be done in both
directions. This is made possible by having two links in every
node, one that links to the next node and another one that
connects to the previous node.
47) What is Huffman’s algorithm?
Huffman’s algorithm is used for creating extended binary trees
that have minimum weighted path lengths from the given
weights. It makes use of a table that contains the frequency of
occurrence for each data element.
48) What is Fibonacci search?
Fibonacci search is a search algorithm that applies to a sorted
array. It makes use of a divide-and-conquer approach that can
significantly reduce the time needed in order to reach the
target element.
49) Briefly explain recursive algorithm.
Recursive algorithm targets a problem by dividing it into
smaller, manageable sub-problems. The output of one
recursion after processing one sub-problem becomes the input
to the next recursive process.
50) How do you search for a target key in a linked list?
To find the target key in a linked list, you have to apply
sequential search. Each node is traversed and compared with
the target key, and if it is different, then it follows the link to
the next node. This traversal continues until either the target
key is found or if the last node is reached.