Final Exam
True or False: During the sorting phase of insertion sort, the array containing the list is divided into two sublists, sorted and unsorted.
True
True or False: Every (recursive) call also has its own set of parameters and local variables.
True
True or False: Every call to a recursive function requires the system to allocate memory for the local variables and formal parameters.
True
True or False: If no exception is thrown in a try block, all catch blocks associated with that try block are ignored.
True
True or False: In C++, any class can be considered an exception class.
True
True or False: In a linked list, if a new item is always inserted at the beginning or at the end of the list and the data read is unsorted, the linked list will be unsorted.
True
True or False: In a linked list, if a new item is always inserted at the beginning or at the end of the list and the data we read is unsorted, the linked list will be unsorted.
True
True or False: In a recursive function, the base case stops the recursion.
True
True or False: It is difficult to construct an iterative solution for the Tower of Hanoi problem.
True
True or False: Linked lists allow you to overcome the size limitations of an array data type.
True
True or False: One of the typical ways of dealing with exceptions is to use an if statement.
True
True or False: Suppose that L is a sorted list of size 1024, and we want to determine whether an item x is in L. From the binary search algorithm, it follows that every iteration of the while loop cuts the size of the search list by half.
True
True or False: The binary search algorithm can be written iteratively or recursively.
True
True or False: The following is a valid recursive definition to determine the factorial of a non-negative integer. 0! = 1 1! = 1 n! = n * (n - 1)! If n > 0
True
True or False: The following is an example of a recursive function. void print(int x) { if (x > 0) { cout << x << " " ; print (x - 1); }
True
True or False: The length of a linked list is the number of nodes in the list.
True
True or False: The length of a linked list is the number of nodes in the list. Selected Answer: Answers:
True
True or False: The selection sort algorithm finds the location of the smallest element in the unsorted portion of the list.
True
True or False: The sequential search algorithm does not require that the list be sorted.
True
True or False: There are usually two ways to solve a particular problem: iteration and recursion.
True
True or False: To design a recursive function, you must determine the limiting conditions.
True
True or False: You can use a recursive algorithm to find the largest element in an array.
True
The behavior of merge sort is ____ in the worst case and ____ in the average case.
a. O(nlog2n), O(nlog2n)
Which of the following solutions is easier to construct for the Tower of Hanoi problem? a. Recursive c. Procedural b. Iterative d. Step-by-step
a. Recursive
A queue is a data structure in which the elements are ____.
a. added to the rear and deleted from the front
The postfix expression 3 5 + 2 ; 6 - = will generate an error, because it ____.
a. contains an illegal operator
With the binary search algorithm, ____ key comparison(s) is/are made in the successful case—the last time through the loop.
a. one
A(n) ____ is a list of homogenous elements in which the addition and deletion of elements occurs only at one end.
a. stack
The ____ element of the stack is the last element added to the stack.
a. top
After the second iteration of bubble sort for a list of length n, the last ____ elements are sorted.
a. two
When a stack is implemented as an array, the array is empty if the value of stackTop is ____.
a. zero
When division by zero occurs and the problem is not addressed, the program crashes with an error message that is ____ dependent.
a. IDE
Consider the accompanying statements. The list is empty if the pointer first is ____.
a. NULL
To use the assert function in your program, you should include the statement ____.
#include <cassert>
struct nodeType { int info; nodeType *link; }; nodeType *head, *p, *q, *newNode; newNode = new nodeType; Consider the accompanying code. What is the effect of the following statement? newNode->info = 50;
a. Stores 50 in the info field of the newNode
True of False: If the catch block with an ellipses (in the heading) is needed, then it should be the first catch block in a sequence of try/catch blocks.
False
True of False: If you try to add a new item to a full stack, the resulting condition is called an outflow.
False
True of False: In the array representation of a stack, an unlimited number of elements can be pushed onto the stack.
False
True of False: In the linked implementation of stacks, the memory to store the stack elements is allocated statically.
False
True of False: Postfix notation requires the use of parentheses to enforce operator precedence.
False
True of False: The bottom element of the stack is the last element added to the stack.
False
True of False: The expression a + b is the same in both infix notation and postfix notation.
False
True of False: The order of the catch blocks does not affect the program.
False
True or False: A catch block specifies the type of exception it can catch and immediately terminates the program.
False
True or False: A linked list is a random access data structure.
False
True or False: An object that is being thrown cannot be an anonymous object.
False
True or False: During the second iteration of a selection sort, the smallest item is moved to the top of the list.
False
True or False: If a recursive solution to a problem exists, a programmer should always opt to use it over any iterative solution that exists.
False
True or False: If n = 1000, then to sort the list, selection sort makes about 50,000 key comparisons.
False
True or False: In a binary search, first, the search item is compared with the last element of the list.
False
True or False: In a bubble sort, the smaller elements move toward the bottom, and the larger elements move toward the top of the list.
False
True or False: In the Tower of Hanoi recursive program, if needle 1 contains three disks, then the number of moves required to move all three disks from needle 1 to needle 3 is 8.
False
True or False: Infinite recursions execute forever on a computer.
False
True or False: It is not possible to create an ordered linked list.
False
True or False: Memory for the components of an array does not need to be contiguous.
False
True or False: The following is an example of a recursive function, where nextNum is a function such that nextNum(x) = x + 1. int recFunc(int x) { return nextNum(nextNum(x)); }
False
True or False: The swap function of quick sort is written differently from the swap function for selection sort.
False
True or False: We deallocate the memory for a linked list by calling the operator clear.
False
True or False: When you build a linked list in the backward manner, a new node is always inserted at the end of the linked list.
False
True or False: When you build a linked list in the backward manner, a new node is always inserted at the end of the linked list. Selected Answer: Answers:
False
True or False: With recursion, the base case must eventually be reduced to a general case.
False
True or False: You can use the pointer head of a linked list to traverse the list.
False
True or False: You can use the pointer head of a linked list to traverse the list. Selected Answer: Answers:
False
True or False: You deallocate the memory for a linked list by calling the operator clear.
False
Any sorting algorithm that sorts a list of n distinct elements by comparison of the keys only, in its worst case, makes at least ____________________ key comparisons.
O(nlog2n) O(nlogn)
Consider the following list: int list[] = {4, 8, 19, 25, 34, 39, 45, 48, 66, 75, 89, 95} When performing a binary search for 75, after the first comparison, the search is restricted to ____.
d. list[6]...list[11]
struct nodeType { int info; nodeType *link; }; nodeType *head, *p, *q, *newNode; newNode = new nodeType; Consider the accompanying code. What is the effect of the following statement? newNode->info = 50;
a. Stores 50 in the info field of the newNode
Which of the following is a valid C++ statement? a. assert(divisor != 0); b. assert(divisor is 0); c. assert(divisor 0); d. assert(0 = divisor);
a. assert(divisor != 0);
The try block is followed by one or more ____ blocks.
a. catch
The class ____ is the base of the classes designed to handle exceptions.
a. exception
Each node of a singly linked list has two components: ____ and ____.
a. info, link
The link field of the last node of a linked list is ____.
a. nullptr
Data can be organized and processed sequentially using an array, called a(n) ____ list.
a. sequential
When an exception is thrown, if the program does not handle the exception, then the function ____ is called to terminate the program.
a. terminate
A sequential search of an n-element list takes ____ key comparisons on average to determine whether the search item is in the list.
b. n/2
In evaluating a postfix expression, when an equal sign (=) is encountered, how many elements must the stack contain so that no error is generated?
b. one
You can perform the add operation, called ____, to add an element onto the stack.
b. push
A definition in which something is defined in terms of a smaller version of itself is called a(n) ____definition.
b. recursive
To describe a queuing system, we use the term ____ for the object that provides the service.
b. server
A recursive function in which the last statement executed is the recursive call is called a(n) ____recursive function.
b. tail
How many pointers are needed to build a linked list in a backward manner?
b. Two
The ____________________ search algorithm is the optimal worst-case algorithm for solving search problems by using the comparison method.
binary
The elements at the ____________________ of a stack have been in the stack the longest.
bottom
If a formal parameter is a value parameter, the ____________________ constructor provides the formal parameter with its own copy of the data.
copy
The ____________________ constructor can make an identical copy of a linked list.
copy
The ____________________ constructor executes when an object is declared and initialized using another object.
copy
The ____________________ constructor is called when a stack object is passed as a (value) parameter to a function.
copy
Which of the following is a basic operation on singly linked lists? a. Swap the head and the last nodes. b. Determine whether the list is full. c. Retrieve the data of an arbitrary node. d. Make a copy of the linked list.
d. Make a copy of the linked list.
The function ____ can check whether an expression meets the required conditions; if the conditions are not met, it terminates the program.
d. assert
template <class Type> ____ doublyLinkedList<Type>::isEmptyList() const { return (first == NULL); } Consider the accompanying statements. The operation returns true if the list is empty; otherwise, it returns false. The missing code is ____.
d. bool
template <class Type> ____ doublyLinkedList<Type>::isEmptyList() const { return (first == nullptr); } Consider the accompanying statements. The operation returns true if the list is empty; otherwise, it returns false. The missing code is ____.
d. bool
In a sequence of try/catch blocks, the last catch block of that sequence should be ____.
d. catch(...){ }
Which of the following blocks is designed to catch any type of exception? a. catch(exception){ } b. catch(){ } c. catch(*){ } d. catch(...){ }
d. catch(...){ }
Which of the following statements appears in the insert function of a doubly linked list? a. current++; b. trailCurrent++; c. newNode++; d. count++;
d. count++;
Which of the following correctly initializes a doubly linked list in the default constructor? a. head = NULL; back = NULL; b. head = 0; back = 0; count = 0; c. first = 0; last = 0; d. first = NULL; last = NULL; count = 0;
d. first = NULL; last = NULL; count = 0;
When building a linked list in the ____ manner, a new node is always inserted at the end of the linked list.
d. forward
In a linked list, the address of the first node in the list is stored in a separate location, called the ____ or first.
d. head
The class ____ is designed to deal with illegal arguments used in a function call.
d. invalid_argument
Which of the following classes is derived from the class runtime_error? a. out_of_range b. length_error c. bad_alloc d. overflow_error
d. overflow_error
Suppose that the pointer head points to the first node in the list, and the link of the last node is nullptr. The first node of the linked list contains the address of the ____ node.
d. second
Every node (except of the last node) in a singly linked list contains ____.
d. the address of the next node
When an exception is thrown in a function, the function-call stack is ____ so that the exception can be caught in the next try/catch block.
d. unwound
What is the output of the following code? stackType<int> stack; int x, y; x = 4; y = 2; stack.push(6); stack.push(x); stack.push(x + 1); y = stack.top(); stack.pop(); stack.push(x + y); x = stack.top(); stack.pop(); cout << "x = " << x << endl;
d. x = 9
The ____________________ operator advances the iterator to the next node in the linked list.
increment
If a function A calls a function B and function B calls function A , then function A is ____________________ recursive.
indirectly
Suppose that function A calls function B , function B calls function C , function C calls function D , and function D calls function A . Function A is then ____________________ recursive.
indirectly
If every recursive call results in another recursive call, then the recursive function (algorithm) is said to have ____ recursion.
infinite
A(n) ____________________ is an object that produces each element of a container, such as a linked list, one element at a time.
iterator
In a circular linked list with more than one node, it is convenient to make the pointer first point to the ____________________ node of the list.
last
To deal with logical errors in a program, such as a string subscript out of range or an invalid argument to a function call, several classes are derived from the class ____.
logic_error
If you execute an infinite recursive function on a computer, the function executes until the system runs out of ____________________.
memory
The ____________________ elements of a stack and queue should not be accessed directly.
middle
For a list of length n, the bubble sort makes exactly ____________________ key comparisons.
n(n-1)/2
Every recursive definition must have at least ____ base case(s).
one
For classes that include pointer data members, the assignment operator must be explicitly ____________________.
overloaded
In a quick sort, all of the sorting work is done by the function ____________________.
partition
A sequence of branches in a comparison tree is called a(n) ____________________.
path
The first step in the quick sort partition algorithm is to determine the ____________________ and swap it with the first element in the list.
pivot
In a linked list, the link component of each node is a(n) ____________________.
pointer
In ____________________ notation, operators are written after the operands.
postfix
A(n) ____________________ system consists of servers and queues of objects waiting to be served.
queuing
An array is a(n) ____________________ access data structure.
random
Every ____ call requires that the system allocate memory space for its formal parameters and local variables and then deallocate the memory space when the function exits.
recursive
Recursive algorithms are implemented using ____________________ functions.
recursive
The top node of a comparison tree is call the ____________________ node.
root
The class ____ is designed to deal with errors that can be detected only during program execution.
runtime_error
A linked list must be searched ____________________, starting from the first node.
sequentially
In a queuing system, we use a(n) ____________________ variable to set the status of the server.
string
Consider the following code. int fact(int num) { if (num == 0) return 1; else return num * fact(num - 1); } The function fact is an example of a(n) ____________________ recursive function.
tail
In a(n) ____________________ simulation, the clock is implemented as a counter, and the passage of, say, one minute can be implemented by incrementing the counter by one.
time driven
When describing a queuing system, we use the term ____________________ time to refer to the time it takes to serve a customer.
transaction
The statements that may generate an exception are placed in a ____ block.
try
In a queuing system, every customer has a customer number, arrival time, ____________________ time, transaction time, and departure time.
waiting
If you want to include members in your exception class, you typically include the function ____.
what
In C++, the dereferencing operator is represented by the ____________________ symbol.
*
In the array representation of a stack, the stack is initialized simply by setting stackTop to ____________________.
0 zero
In the case of an unsuccessful search, it can be shown that for a list of length n, a binary search makes approximately ____________________ key comparisons.
2log2n 2logn
Consider the following recursive definition, where n is a positive integer. F(1) = 3 F(n) = F(n - 1) + 1 if n > 1 The value of F(3)is ____________________.
5
Which of the following rules should you follow to solve the Tower of Hanoi problem?
A smaller disk can be placed into a larger disk.
Let f and g be real-valued functions. Assume that f and g are nonnegative, that is, for all real numbers n, f (n) 0 and g(n) 0. We say that f (n) is ____________________ of g(n), written f (n) = O(g(n)), if there exist positive constants c and n0 such that f (n) cg(n) for all n n0.
Big-O
____ control structures use a looping structure to repeat a set of statements.
Iterative
In general, the selection sort algorithm is good only for small lists because ____________________ grows rapidly as n grows.
O(n2)
True or False: A doubly linked list can be traversed in either direction.
True
In the late 1950s, the Australian philosopher and early computer scientist Charles L. Hamblin proposed a scheme in which the operators follow the operands (postfix operators), resulting in the ____________________ notation.
Reverse Polish reverse polish reverse Polish
____________________ techniques are used when it is too expensive or dangerous to experiment with real systems.
Simulation simulation
True of False: A queue is a First In First Out data structure.
True
True of False: In the array representation of a stack, if a value called stackTop indicates the number of elements in the stack, then stackTop-1 points to the top item of the stack.
True
True of False: The default constructor for the linked implementation of a stack initializes the stack to an empty state when a stack object is declared.
True
True of False: The infix expression (a + b) * (c - d / e) + f is equivalent to the postfix expression ab + cde /-* f +
True
____ control structures use a looping structure, such aswhile,for, ordo...while, to repeat a setof statements.
a. Iterative
Consider the accompanying definition of a recursive function. What is the output of the following statement? cout << recFunc(10) << endl;
a. 10
Assuming the following list declaration, which element is at the position 0 after the first iteration of selection sort? int list[] = {16, 30, 24, 7, 62, 45, 5, 55}
a. 5
Which of the following solution methods would be the best choice for a mission control system? a. Iterative c. Indirect recursive b. Direct recursive d. Infinite recursive
a. Iterative
____ sort requires knowing where the middle element of the list is.
a. Merge
Each node of a linked list must store the data as well as the ____________________ for the next node in the list.
address
The nodes of a standard ordered list (as constructed in the text) are in ____________________ order.
ascending
Let f be a function of n. By the term ____________________, we mean the study of the function f as n becomes larger and larger without bound.
asymptotic
With insertion sort, the variable firstOutOfOrder is initialized to ____, assuming n is the length of the list.
b. 1
The postfix expression 2 4 6 * + 15 - 21 7 / + = evaluates to ____.
b. 14
For a list of length n, selection sort makes ____ item assignments.
b. 3(n - 1)
int foo(int n)//Line 1 {//Line 2 if (n == 0)//Line 3 return 0;//Line 4 else//Line 5 return n + foo(n - 1);//Line 6 }//Line 7 Consider the accompanying definition of a recursive function. Which of the statements represents the base case?
b. Statements in Lines 3 and 4.
The ____ case is the case for which the solution to an equation is obtained directly.
b. base
The sequential search algorithm uses a(n) ____ variable to track whether the item is found.
b. bool
Tracing through ____ recursion is more tedious than tracing other recursive forms.
b. indirect
For a list of length n, insertion sort makes ____ key comparisons, in the worst case.
b. n(n - 1)/2
Consider the following code, which deletes all the nodes in a linked list. void doublyLinkedList<Type>::destroy() { nodeType<Type> *temp; //pointer to delete the node while (first != NULL) { temp = first; first = first->next; ____ } last = NULL; count = 0; } Which of the following is the missing statement?
b. delete temp;
The ____ deallocates the memory occupied by the nodes of a list when the class object goes out of scope.
b. destructor
In a linked list, the order of the nodes is determined by the address, called the ____, stored in each node.
b. link
A linked list is a collection of components called ____.
b. nodes
A linked list is a collection of components, called ____.
b. nodes
template <class Type> ____ doublyLinkedList<Type>::isEmptyList() const { return (first == nullptr); } Consider the statements above. The list is empty if the pointer first is ____.
b. nullptr
Consider the following code: template <class Type> int doublyLinkedList<Type>::length() const { ____ } The statement that provides the length of the linked list is ____.
b. return count;
Which of the following statements throws a valid exception in C++? a. throw.function(); b. throw 2; c. 4 throw; d. throws str;
b. throw 2;
If you try to add a new item to a full stack, the resulting condition is called a(n) ____.
b. overflow
The deleteNode operation (if the item to be deleted is in a doubly linked list) requires the adjustment of ____ pointer(s) in certain nodes.
b. two
Popping an element from an empty stack is called ____.
b. underflow
The ____ algorithm attempts to find solutions to a problem by constructing partial solutions and then making sure that any partial solution does not violate the problem requirements.
backtracking
The recursive algorithm must have one or more base cases, and the general solution must eventually bereduced to a(n) ____________________.
base case
A comparison tree is a(n) ____________________ tree.
binary
To construct a search algorithm of the order less than log2n, it cannot be ____________________ based.
comparison
The following C++ function implements the ____________________ sort algorithm. template <class elemType> void Sort(elemType list[], int length) { for (int iteration = 1; iteration < length; iteration++) { for (int index = 0; index < length - iteration; index++) { if (list[index] > list[index + 1]) { elemType temp = list[index]; list[index] = list[index + 1]; list[index + 1] = temp; } } } }
bubble
The formula to find the index of the middle element of a list is ____.
c. (first + last) / 2
Assume that list consists of the following elements. What is the result after bubble sort completes? int list[] = {2, 56, 34, 25, 73, 46, 89, 10, 5, 16};
c. 2 5 10 16 25 34 46 56 73 89
If n = 1000, to sort the list, bubble sort makes about ____ item assignments.
c. 250,000
Consider the following list: int list[] = {4, 8, 19, 25, 34, 39, 45, 48, 66, 75, 89, 95} When performing a binary search, the target is first compared with ____.
c. 39
Consider the following definition of the recursive function print. void print(int num) { if (num > 0) { cout << num << " "; print(num - 1); } } What is the output of the following statement? print(4);
c. 4 3 2 1
The postfix expression 5 6 + 4 * 10 5 / - = evaluates to ____.
c. 42
void printNum(int num)//Line 1 {//Line 2 if (n < 0)//Line 3 cout << "Num is negative" << endl;//Line 4 else if (num == 0)//Line 5 cout << "Num is zero" << endl;//Line 6 else//Line 7 {//Line 8 cout << num << " ";//Line 9 printNum(num - 1);//Line 10 }//Line 11 }//Line 12 Consider the accompanying definition of a recursive function. Which of the statements represent the base case?
c. Statements in Lines 3-6
Which of the following rules should you follow to solve the Tower of Hanoi problem? a. Only two disks can be moved at a time. b. You can remove disks only from the first needle. c. The removed disk must be placed on one of the needles. d. A larger disk can be placed on top of a smaller disk.
c. The removed disk must be placed on one of the needles.
A stack can be implemented as either a(n) ____ or a linked structure.
c. array
We can trace the execution of a comparison-based algorithm by using a graph called a ____.
c. comparison tree
To describe a queuing system, we use the term ____ for the object receiving the service.
c. customer
A function is called ____ if it calls itself.
c. directly recursive
Which of the following correctly states the quick sort algorithm? a. if (the list size is greater than 1) { a. Partition the list into four sublists. b. Quick sort sublist1. c. Quick sort sublist2. d. Quick sort sublist3. e. Quick sort sublist4. d. Combine the sorted lists. } b. a. Find the location of the smallest element. b. Move the smallest element to the beginning of the unsorted list. c. if (the list size is greater than 1) { a. Partition the list into two sublists, say lowerSublist and upperSublist. b. Quick sort lowerSublist. c. Quick sort upperSublist. d. Combine the sorted lowerSublist and sorted upperSublist. } d. if the list is of a size greater than 1 { a. Divide the list into two sublists. b. Merge sort the first sublist. c. Merge sort the second sublist. d. Merge the first sublist and the second sublist. }
c. if (the list size is greater than 1) { a. Partition the list into two sublists, say lowerSublist and upperSublist. b. Quick sort lowerSublist. c. Quick sort upperSublist. d. Combine the sorted lowerSublist and sorted upperSublist. }
Which of the following is a basic operation performed on a queue? a. push b. pop c. isEmptyQueue d. top
c. isEmptyQueue
In a bubble sort for list of length n, the first step is to compare elements ____.
c. list[0] and list[1]
When working with the unsorted portion of a list, the second step in a selection sort is to ____.
c. move the smallest element to the beginning of the unsorted list
A sequential search of an n-element list takes ____ key comparisons if the item is not in the list.
c. n
In the average case, sequential search typically searches ____.
c. one half of the list
You can perform the operation ____ to remove the top element from the stack.
c. pop
A technique in which one system models the behavior of another system is called ____.
c. simulation
The addition and deletion of elements of the stack occurs only at the ____ of the stack.
c. top
What is the output of the following code? queueType<int> queue; int x, y; x = 2; y = 3; queue.addQueue(x); queue.addQueue(y); x = queue.front(); queue.deleteQueue(); queue.addQueue(x + 2); queue.addQueue(x); queue.addQueue(y - 3); y = queue.front(); queue.deleteQueue(); cout << "x = " << x << endl; cout << "y = " << y << endl;
c. x = 2 y = 3
What is the purpose of the following code? current = head; while (current != NULL) { //Process current current = current->link; }
c. Traversal of a linked list
The following expression (a - b) * (c + d) is equivalent to which of the following postfix expressions? a. a b c d - + * b. - + * a b c d c. a b - c d + * d. a b - + c d *
c. a b - c d + *
Every node in a doubly linked list has two pointers: ____ and ____.
c. back; next
Because each node of a linked list has two components, we need to declare each node as a(n) ____.
c. class or struct
Which of the following statements appears in the insert function of a doubly linked list? a. current++; b. trailCurrent++; c. count++; d. newNode++;
c. count++;
Consider the following code which deletes all the nodes in a linked list. void doublyLinkedList<Type>::destroy() { nodeType<Type> *temp; //pointer to delete the node while (first != nullptr) { temp = first; first = first->next; ____ } last = nullptr; count = 0; } Which of the following is the missing statement? a. clear temp; b. delete first; c. delete temp; d. destroy temp;
c. delete temp;
A(n) ____ is an occurrence of an undesirable situation that can be detected during program execution.
c. exception
Which of the following correctly initializes a doubly linked list in the default constructor? a. first = 0; last = 0; b. head = nullptr; back = nullptr; c. first = nullptr; last = nullptr; count = 0; d. head = 0; back = 0; count = 0;
c. first = nullptr; last = nullptr; count = 0;
Consider the following code: template <class Type> int doublyLinkedList<Type>::length() const { ____ } The statement that provides the length of the linked list is ____.
c. return count;
Suppose that the pointer head points to the first node in the list, and the link of the last node is NULL. The first node of the linked list contains the address of the ____ node.
c. second
Data can be organized and processed sequentially using an array called a(n) ____ list.
c. sequential
The logic_error and runtime_error classes are defined in the header file ____.
c. stdexcept
The function ____ returns a string containing an appropriate message.
c. what
What is the output of the following program segment? (The class unorderedLinkedList is as defined in the book.) unorderedLinkedList<int> list; list.insertFirst(6); list.insertLast(5); list.insertFirst(4); list.insertFirst(8); list.insertLast(10); list.deleteNode(4); list.insertFirst(1); list.print();
c. 1 8 6 5 10
A stack is a(n) ____ data structure.
c. LIFO
A linked list in which the last node points to the first node is called a(n) ____________________ linked list.
circular
In a(n) ____________________ array, the first array position immediately follows the last array position.
circular
What is the output of the following code? queueType<int> queue; int x, y; x = 2; y = 6; queue.addQueue(x); queue.addQueue(y); x = queue.front(); queue.deleteQueue(); queue.addQueue(x + 2); queue.addQueue(x); queue.addQueue(y - 3); while (!queue.isEmptyQueue()) { cout << queue.front() << " "; queue.deleteQueue(); } cout << endl;
d. 6 4 2 3
int recFunc(int num) { if (num >= 10) return 10; else return num * recFunc(num + 1); } Consider the accompanying definition of a recursive function. What is the output of the following statement? cout << recFunc(8) << endl;
d. 720
The behavior of quick sort is ____ in the worst case and ____ in the average case.
d. O(n^2), O(nlog<2>n)
Consider the accompanying definition of a recursive function. Which of the statements represent the general case?
d. Statements in Lines 5 and 6
Consider the accompanying definition of a recursive function. Which of the statements represent the general case?
d. Statements in Lines 7-11
When moving array values for insertion sort, to move list[4] into list[2], first ____.
d. copy list[4] into temp
A stack can be implemented as either an array or a(n) ____ structure.
d. linked
If a list of eight elements is sorted using selection sort, the unsorted list is ____ after the second iteration.
d. list[2] ... list[7]
In the bubble sort algorithm, the following code accomplishes swapping values in elements at positions index and index + 1.
d. temp = list[index]; list[index] = list[index + 1]; list[index + 1] = temp;
The postfix expression 14 2 5 + = will generate an error, because ____.
d. there will be too many elements in the stack when the equal sign is encountered
What is the output of the following code? stackType<int> stack; int x, y; x = 5; y = 3; stack.push(4); stack.push(x); stack.push(x + 1); y = stack.top(); stack.pop(); stack.push(x + y); x = stack.top(); stack.pop(); cout << "x = " << x << endl; cout << "y = " << y << endl;
d. x = 11 y = 6
The steps involved in inserting a new item at the beginning of an unordered linked list are ____.
d. 1. Create a new node. 2. Store the new item in the new node. 3. Insert the node before first. 4. Increment the counter by 1.
Which of the following is a basic operation on singly linked lists? a. Retrieve the data of an arbitrary node. b. Swap the head and the last nodes. c. Determine whether the list is full. d. Make a copy of the linked list.
d. Make a copy of the linked list.
In a linked list, the ____________________ operator returns the info of the current node.
dereferencing
A function is called ____ recursive if it calls itself.
directly
The quick sort algorithm uses the ____________________ technique to sort a list.
divide and conquer
A(n) ____________________ linked list is a linked list in which every node has a next pointer and a back pointer.
doubly
The ____________________ Fibonacci number in a sequence is the sum of the second and third Fibonacci numbers.
fourth 4th
In the linked implementation of stacks, the stack is ____________________ only if you run out of memory space.
full