Test 1
Mark the correct/incorrect definitions and assertions about linear data
structures.
(yes) A stack is a container of objects that are inserted and removed
according to the last-in first-out (LIFO) principle.
(no) A singly linked list is an ADT which consists of collection of
nodes.
Let us have stack ADT with n elements realized by an array. Mark
the
correct/incorrect correspondence between a function of this ADT
and its running time.
(yes) size() - O(1)
(no) isEmpty() - O(n)
Let us have a stack ADT with n elements realized by a singly linked
list.Mark the correct/incorrect correspondence between a function of
this ADT
and its running time.
(yes) size() - O(1)
(no) isEmpty() - O(n)
Let us have a queue ADT with n elements realized by an array. Mark the
correct/incorrect correspondence between a function of this ADT
and its running time.
(yes) size() - O(1)
(no) isEmpty() - O(n2)
Let us have a queue ADT with n elements realized by a singly linked
list. Mark the correct/incorrect correspondence between a function of
this ADT
and its running time.
(no) size() - O(n)
(yes) isEmpty() - O(1)
Let us have a deque ADT with n elements realized by a doubly linked
list. Mark the correct/incorrect correspondence between a function of
this ADT
and its running time.
(yes) size() - O(1)
(no) isEmpty() - O(log n)
Let us have a vector ADT with n elements realized by an array. Mark the
correct/incorrect correspondence between a function of this ADT
and its running time.
(yes) size() - O(1)
(no) isEmpty() - O(n)
Let us have a list ADT with n elements realized by an array. Suppose
that the position means the index. Mark the correct/incorrect
correspondence between a given function of this ADT and its running
time.
(no) size() - O(n)
(yes) isEmpty() - O(1)
Let us have a list ADT with n elements realized by a doubly linked
list. Mark the correct/incorrect correspondence between a function of
this ADT
and its running time.
(no) size() - O(n)
(yes) isEmpty() - O(1)
Let us have a stack ADT S = (9,7,2) with top element 2. For a stack
operation, determine its return value and its effect on S.
(yes) push(5) - NONE - S=(9,7,2,5)
(no) push(3) - 3 - S=(9,7,3)
Let us have a queue ADT Q = (8,7,2). The front element is 8. For a
queue operation, determine its return value and its effect on Q.
(yes) enqueue(5) - NONE - Q=(8,7,2,5)
(no) enqueue(7) - 7 - Q=(8,7,2,7)
Let us have a deque ADT D = (8,1,2). The front element is 8. For a
deque operation, determine its return value and its effect on D.
(no) isEmpty() - true - D =(8,1,2)
(yes) size() - 3 - D =(8,1,2)
Let us have a vector ADT V = (4,7,2). For a vector operation, determine
its return value and its effect on V.
(yes) insert 1 at rank 0 - NONE - (1,4,7,2)
(no) insert 2 at rank 1 - NONE - (2,4,7,2)
Let us have a list ADT L = p_1(8) -> p_2(3). We use positions p_1,
p_2 etc. and show the object currently stored
at the position in parentheses. For a list operation, determine its
return value and its effect on L.
(yes) insertFirst(2), p_4(2), p_4(2) -> p_1(8) -> p_2(3)
(no) insertFirst(4), p_3(4), p_3(4) -> p_2(3)
Mark correct/incorrect definitions about asymptotic notation.
(yes) f(n) is O(g(n)) if there are positive constants c and N such that
f(n)<cg(n) for n>N.
(no) g(n) is O(f(n)) if there are positive constants c and N such that
f(n)<cg(n) for n>N.
Is the following assertion true?
(yes) The running time of an algorithm typically grows with the input
size.
(no) If is f(n) a polynomial of degree d, then f(n) is O(dn).
Mark correct/incorrect assertions about asymptotic notation for
concrete functions.
(yes) 2n + 10 is O(n)
(no) n + n2 is O(n)
Let d(n), e(n), f(n) and g(n) be functions mapping nonnegative integers
to nonnegative reals. Is the following propositions true?
(yes) If d(n) is O(f(n)), then a+d(n) is O(f(n)) for any constant a.
(no) If d(n) is O(f(n)) and e(n) is O(2n), then d(n)e(n) is
O(n2 f(n)).
We have a function template:
template<typename T>
T maxA(T* arr,
int s = 2)
{ T maxVal =
arr[0];
for (int
i = 1; i < s; i++)
if
(arr[i] > maxVal) maxVal = arr[i];
return
maxVal;
}
Mark correct/incorrect assertions or statements in the body of main
function.
(yes) int a[3]={2,1,4}; cout << maxA(a,3);
(no) cout << maxA(10);
We have the following code fragment:
void fun3() {
throw runtime_error("RTE" ); }
void fun2()
throw(runtime_error) { ... }
void fun1()
throw(runtime_error) { fun2(); }
int main()
{ try {
fun1(); }
catch
(runtime_error e) { cout << e.what(); }
return 0;
}
Replacing ... with the given below statement, the message RTE prints on
the screen. Is this assertion true?
(yes) fun3();
(no) fun1();
Mark the correct/incorrect definitions and assertions about abstract
data types.
(yes) The adapter design pattern adjusts functions from one ADT class
so they can be used to implement functions of another ADT class.
(no) The running times of functions in the realization of a deque ADT
by a doubly linked list are all O(n).