CSS 3303 Data Structs
A list is said to be empty when all of its elements have a zero (0) value Select one: True False
False
A traversal of a general tree that traverses the roots subtrees from left to right, then visits the root is called a preorder traversal. Select one: True False
False
The quicksort is typically slower than the heapsort by a constant factor. Select one: True False
False
True/False: There is always one most efficient algorithm to solve a particular problem. Select one: True False
False
Data is stored within the disk drive on the: (select the best answer) Select one: a. Spindle b. Platter c. Cylinder d. Sector
b.
For the following code fragment, select the choice which represents the most appropriate asymptotic analysis: static int function ( n ) { for (k=0; k<n; k++) A[k] = k; return A[k]; } Choice 1. O ( n2 ) Choice 2. O( 2n ) Choice 3. Ω( n2 ) Choice 4. Θ ( n ) (NOTE: code fragment is not intended to be functioning code)
d.
If A={1, 2, 3, 4} and B={4, 5, 6}, find A∪ B . Select one: a. {1,2,3,4,4,5,6} b. {4} c. {x | x is all positive integers} d. {1,2,3,4,5,6}
d.
Select the answer that best defines Huffman Coding: Select one: a. A set of coding rules that is typically used for compression b. A fixed length coding scheme for character representation c. A tree structure that trades off space and time requirements to provide a more efficient priority queue d. An approach of assigning codes to characters such that the frequency length of the code depends upon the relative frequency of the corresponding character in use
d.
A characteristic of RAM (random access memory) is that it is persistent and is not lost when the power to a computer is turned off. Select one: True False
False
A full binary tree has a restricted shape which starts at the root and fills the tree by levels from left to right. Select one: True False
False
A linked list implementation relies upon static memory allocation where static refers to the requirement to pre-allocate all of the memory that will be used for the list. Select One: True False
False
A preorder traversal visits every node starting at the leaf nodes and working up the tree. Select one: True False
False
In a queue, placing new items in the queue is referred to as a push and taking an item out of the queue is called a pop. Select One: True False
False
Inserting or removing an item at position n-1 within a linked list has the same cost in terms Q ( n ) time as the same operation in an array based implementation of a list. Select One: True False
False
Recursion is when an algorithm uses a series of loop structures to repeat an operation until the answer has been computed. Select one: True False
False
The benefit of a quicksort is that it provides excellent performance in both the average and worst case: Select one: True False
False
The full binary tree theorem states "the number of leaves in an empty full binary tree is one more than the number of internal nodes" Select one: True False
False
The process of associating a key with the location of a corresponding data record is called folding. Select one: True False
False
A coding scheme that replaces repeated occurrences of strings with a pointer to the location in the file of the first occurrence of the string is called Ziv-Lempel coding. Select one: True False
True
A linear index is an index file organized as a sequence of key/pointer pairs where the keys are in a sorter order. Select one: True False
True
A linked list creates order through the use of pointers that link one element to another. Select One: True False
True
A sequential tree can be represented using a bit vector? Select one: True False
True
A tree whose internal nodes all have exactly K children is called a K-ary tree. Select one: True False
True
The implementation of a data type as a data structure is the physical form of an ADT. Select one: True False
True
The list of children approach uses both pointers and an array structure to represent the tree. Select one: True False
True
The most significant difference between the B+-Tree and the BST is that the B+-Tree stores records only at the leaf nodes. Select one: True False
True
The process for visiting all of the nodes of a binary tree in some order is called a traversal. Select one: True False
True
The weighted union rule joins a tree with fewer nodes to a tree with more nodes by making the smaller tree's root point to the root of the larger tree. Select one: True False
True
True/False: Big Theta (Θ) indicates that the Upper and Lower bounds of an algorithm are the same. Select one: True False
True
True/False: The queue data structure is implemented as FIFO structure (first in first out) Select one: True False
True
True/False: The stack data structure is implemented as a LIFO structure (last in first out) Select one: True False
True
A significant benefit to using an index to hold and sort keys to a file is: Select one: a. Smaller keys require less I/O b. The entire sort can always be completed in memory c. The head of the disk drive does not need to move d. There is no seek time added to the latency of I/O operations
a.
A solution is said to be efficient if it: Select one: a. Solves the problem within the required resource constraints b. Executes faster than other solutions c. Is completed in the fewest number of steps d. Can be explained in the context of Big-Oh notation
a.
A sort where the list is divided into halves, the halves sorted and these two halves are merged is called: Select one: a. Mergesort b. Binary sort c. Quicksort d. Heapsort
a.
Enqueue and Dequeue are notations associated with which data structure: Select one: a. Queue b. Stack c. List d. Array
a.
For the following code fragment, select the choice which represents the most appropriate asymptotic analysis: function ( n ) { sum2 = 0; for (i=1; i<=n; i++) for (j=1; j<=i; j++) sum2++; } } a. Choice 1. Ω ( 1 ) b. Choice 2. O( 2n ) c. Choice 3. Θ( n2 ) d. Choice 4. Ω( n2 ) (NOTE: code fragment is not intended to be functioning code)
a.
For the following code fragment, select the option that represents the most appropriate asymptotic analysis: for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } Option 1. O( n ) Option 2. O( 2n ) Option 3. O( n log n ) Option 4. O( n2 ) Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
a.
For the following code fragment, select the option that represents the most appropriate asymptotic analysis: if (a.length > 0) { return a[a.length - 1]; } else { throw new NoSuchElementException(); } Option 1. O( 1 ) Option 2. O( 2n ) Option 3. O( n log n ) Option 4. O( n2 ) Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
a.
For the following code fragment, select the option that represents the most appropriate asymptotic analysis: public static int binarySearch(int[] a, int key) { int left = 0; int right = a.length-1; while (left <= right) { int mid = left + (right-left)/2; if (key < a[mid]) right = mid-1; else if (key > a[mid]) left = mid+1; else return mid; } //not found return -1; } Option 1. Ω( 1 ), O( log n ) Option 2. Ω( n ), O( 2n ) Option 3. Θ( n log n ) Option 4. Θ( log n ) Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
a.
A technique that allows a programmer to use more main memory than exists in the computer is called: (select the best answer) Select one: a. Buffer cache b. Random access memory c. Secondary storage d. Virtual memory
d.
A tree data structure whose shape obeys the following definition, o A node contains one or two keys o Every internal node has either 2 children if it contains 1 key or 3 children if it contains two keys o All leaves are at the same level in the tree Is called a/an: Select one: a. B*-Tree b. BST c. B+-Tree d. 2-3 tree
d.
An algorithm that breaks a file to be sorted in smaller files called runs which are sorted and eventually put back together resulting in a sorted file is called: Select one: a. Quicksort algorithm b. Replacement sort algorithm c. An indexed key sort algorithm d. Mergesort algorithm
d.
Asymptotic Algorithm Analysis is primarily concerned with: Select one: a. The size of the constant in the algorithm running time equation b. The speed of the computing running the algorithm c. The speed of the compiler d. The growth rate demonstrated in the algorithm running time equation
d.
For the following code fragment, select option that represents the most appropriate asymptotic analysis: for (i=0; i<n; i++) { // Search in array a for smallest element starting at i to n-1 minIndex = findSmallestElement(a, i, n-1) a[i] = a[minIndex]; } findSmallestElement( int a[], int i, int n ) { int largest = a[i]; while(i<n) { if(a[i] >a[largest]) largest = i; i++; } return(largest); } Option 1. O( n ) Option 2. O( 2n ) Option 3. O( n log n ) Option 4. O( n2 ) Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
d.
For the following code fragment, select the choice which represents the most appropriate asymptotic analysis: static int function ( n ) { sum = 0; for (i=1; i<=n; i++) sum += n; return sum; } a. Choice 1. Ω( n2 ) b. Choice 2. Ω( log n2 ) c. Choice 3. Θ( n log n ) d. Choice 4. O ( n ) (NOTE: code fragment is not intended to be functioning code)
d.
For the following code fragment, select the choice which represents the most appropriate asymptotic analysis: public E getValue ( ) { assert (curr >= 0) && (curr < listSize) : "No current element"; return listArray[curr]; } a. Choice 1. Θ ( n ) b. Choice 2. O( 2n ) c. Choice 3. Θ( n log n ) d. Choice 4. O( 1 ) (NOTE: code fragment is not intended to be functioning code)
d.
The best asymptotic analysis for the selection sort is represented by (select the best option): Option 1. O( n log n ) Option 2. Ω( n2 ) Option 3. O( n2 ) Option 4. Θ( n2 ) Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
d.
The freelist ... Select one: a. Provides access to memory within the operating system that has not yet been allocated b. Provides access to memory objects which have no Big O ( n ) time. c. Facilitates and encourages the use of the new operator. d. Holds the list nodes that are no longer in use.
d.
Which of the following is NOT one of the design patterns outlined in our text. Select one: a. Flyweight b. Visitor c. Composite d. Synergy
d.
Which of the following is NOT true for Linked Lists structures (please select the best choice): Choice 1. Insertion and deletion are Q( 1 ). Choice 2. Direct access of an item in the list structure is Q( n ). Choice 3. Space grows with number of elements. Choice 4. There is no overhead associated with elements in the list structure Select one: a. Choice 1 b. Choice 2 c. Choice 3 d. Choice 4
d.
Which of the following is not a characteristic of an algorithm? Select one: a. It must be correct b. It must be composed of concrete steps c. It can have no ambiguity d. It must be composed of an infinite number of steps.
d.
Which of the following is not a mathematical proof technique? Select one: a. Proof by mathematical induction b. Proof by contradiction c. Direct proof d. Proof by consensus
d.
A sort that features a limit of n-1 of record swaps is called: Select one: a. Insertion sort b. Bubble sort c. Inversion sort d. Selection sort
d.
For the following code fragment, select the option which represents the most appropriate asymptotic analysis: /** @return Position of largest value in "A" */ static int largest(int[] A) { int currlarge = 0; // Position of largest for (int i=1; i<A.length; i++) if (A[currlarge] < A[i]) currlarge = i; // Remember pos return currlarge; // Return largest pos } a. Choice 1. Θ ( n ) b. Choice 2. O( 2n ) c. Choice 3. Θ( n log n ) d. Choice 4. Ω( n2 ) (NOTE: code fragment is not intended to be functioning code)
a.
Secondary storage is characterized by the following: Select one: a. It is persistent b. It is faster than primary storage c. It is volatile d. It is more expensive than primary storage
a.
The depth of node H in the following tree is: a b c d e f g h i Select one: a. 3 b. 2 c. 4 d. 1
a.
The process of storing blocks of data in main memory after reading from disk is referred to as: Select one: a. Buffering b. Hashing c. Pooling d. Indexing
a.
The process of storing records in the order that they were added to a file is called: Select one: a. Entry-sequenced file b. Binary Sequenced file c. LIFO file format d. Tombstone approach
a.
The processing time or cost of a sort is defined by the number of comparisons and exchanges that must be made during processing. What is the average cost of the heapsort?: Option 1. O( n log n ) Option 2. Ω( n2 ) Option 3. O( n2 ) Option 4. Θ( n2 ) Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
a.
Which of the following is not one of the general approaches to search algorithms: Select one: a. Buffer cache access methods b. Sequential and list methods c. Direct access by key value (hashing) d. Tree indexing methods
a.
A sort algorithm that uses two nested loops with the inner loop moving through the array from bottom to top is called the: Select one: a. Insertion sort b. Bubble sort c. Inversion sort d. Selection sort
b.
A traversal that visits each node after visiting its children is called: Select one: a. Preorder Traversal b. Postorder Traversal c. Inorder Traversal d. Outoforder Traversal
b.
An exchange sort is one where: (select the best answer) Select one: a. Records in an unsorted list are moved to a sorted list b. Adjacent records in the list and compared and exchanged c. An inversion is executed d. The sorting algorithm is said to be stable
b.
Correctly identify the following heap structure by selecting the best answer: 100 19 36 17+3 25+1 2+7 Select one: a. partially ordered heap b. max-heap structure c. priority heap d. min-heap structure
b.
For the following code fragment, select the choice which represents the most appropriate asymptotic analysis: function ( n ) { sum2 = 0; for (k=1; k<=n; k*=2) for (j=1; j<=k; j++) sum2++; } a. Choice 1. O( 2n ) b. Choice 2. Θ ( n ) c. Choice 3. Θ( n log n ) d. Choice 4. Ω( n2 ) (NOTE: code fragment is not intended to be functioning code)
b.
For the following code fragment, select the most appropriate asymptotic analysis: // Towers of Hanoi static void solveHanoi(int disks, char fromPole, char toPole, char withPole) { if (disks >= 1) { solveHanoi(disks-1, fromPole, withPole, toPole); moveDisk(fromPole, toPole); solveHanoi(disks-1, withPole, toPole, fromPole); } } static void moveDisk(char fromPole, char toPole) { moves++; } Option 1. O( n ) Option 2. O( 2n ) Option 3. O( n log n ) Option 4. O( n2 ) Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
b.
For the following code fragment, select the option that represents the most appropriate asymptotic analysis: // Recursive Fibonacci generator static long fibr(int n) { if ((n == 1) || (n == 2)) return 1; // Base case return fibr(n-1) + fibr(n-2); // Recursive call } Option 1. O( n ) Option 2. O( 2n ) Option 3. O( n log n ) Option 4. O( n2 ) Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
b.
Push and Pop are notations associated with which data structure: Select one: a. Queue b. Stack c. List d. Array
b.
Setting the dirty bit causes what action to be performed on a block: (select the best answer) Select one: a. It is deleted because it is no longer consistent b. It flushes or writes the block out to the disk c. Refreshes the data by re-reading the block d. It cleans the cache by flushing all data from the cache
b.
The most time consuming of the following operations on an array based list implementation is: Select one: a. Inserting a new element at position n-1 in the list where n is the number of elements in the list. b. Inserting a new element into the head of the list. c. Removing an element at position n-1 within the list d. Removing an element from the tail of the list.
b.
The process of determining if two objects are in the same set and then merging those sets is called: Select one: a. a Union Operation b. Union / Find c. a Weighted Union d. a Merge Operation
b.
The upper bound for the growth of the Algorithms running time is represented by: Select one: a. Big Oh (O) b. Big Omega (Ω) c. Big Theta (Θ) d. Exponential growth
b.
What is the role of the pivot in a quicksort algorithm? Select one: a. It identifies the maxkey value b. It specifies the point where the array will be subdivided into partitions and each partition then sorted c. It defines the sequence for merging in the sort d. It indicates the index of the current record being compared
b.
Which of the following is NOT one of the buffer pool heuristics defined in the text : (select the best answer) Select one: a. FIFO b. LIFO c. LRU d. LFU
b.
A binary tree traversal that lists every node in the tree exactly once is called: Select one: a. a Traversal b. A visitor design pattern c. An enumeration d. Natural ordering sequence
c.
A collection of one or more trees is called: Select one: a. Trees b. Multiple Spanning Trees c. a Forest d. Traversals
c.
A compound computed search that combines a binary search to get close to the required record and then uses sequential search to find the item is referred to as a/an: Select one: a. Zipf search b. An Exact match search c. A Dictionary search d. bit map vector search
c.
A leaf is any node that: Select one: a. Has one child b. Is an internal node with no ancestors c. Is any node with two empty children d. Is the ancestor of the root node
c.
A list is Select one: a. An ADT for storing and retrieving data b. A tree data structure c. Finite ordered sequence of data items d. A collection of operations to implement an ADT
c.
A list that organizes the order of records within the list based upon patterns of actual record access is called a/an (select the best answer): Select one: a. Quadratic Binary search order b. A Zipf Distribution c. A Self-organizing list d. A range query
c.
A traversal that visits the left subtree, then the node, and then the right subtree is called: Select one: a. Preorder Traversal b. Postorder Traversal c. Inorder Traversal d. Outoforder Traversal
c.
According to textbook by Shaffer, a heap data structure has two properties which are: Select one: a. every node stores a value less than or equal to that of its children and it is a complete binary tree b. it is a min-heap and is partially ordered c. it is a complete binary tree and the values stored in it are partially ordered d. it is a priority queue and is in Θ( n )
c.
According to the properties of logarithms, log(nm) = Note: Due to issues with HTML formatting, an exponent is represented by preceding it with the ^ symbol. As such x^2 is equivalent to x2. Select one: a. log n - log m b. n log n c. log n + log m d. log(n^m)
c.
An ADT is: Select one: a. A type together with a collection of operations to manipulate the type b. An implementation of a flyweight design pattern c. The realization of a data type as a software component d. An implementation in java of a class for a data type
c.
An important advantage of the sequential tree implementation is that (select the best answer): Select one: a. It is an extremely shallow tree b. The data structure can be transmitted between computers c. It saves space because no pointers are stored d. It uses dynamic nodes
c.
Each record of a database normally has a unique identifier called the: Select one: a. Secondary Key b. Primary index c. Primary key d. Index key
c.
A sorting algorithm that assigns records to bins and then relies on some other sorting technique to sort the records within each bin called: Select one: a. Radix Sort b. Quicksort c. Hash sort d. Bucket sort
d.
For the following code fragment, select the choice which represents the most appropriate asymptotic analysis: /** @return The position of an element in sorted array A with value k. If k is not in A,return A.length. */ static int binary(int[] A, int k) { int l = -1; // Set l and r int r = A.length; // beyond array bounds while (l+1 != r) { // Stop when l, r meet int i = (l+r)/2; // Check middle if (k < A[i]) r = i; // In left half if (k == A[i]) return i; // Found it if (k > A[i]) l = i; // In right half } return A.length; // Search value not in A } a. Choice 1. Θ ( n ) b. Choice 2. O( 2n ) c. Choice 3. O( log n ) d. Choice 4. Ω( n2 )
c.
For the following code fragment, select the choice which represents the most appropriate asymptotic analysis: /** @return The position of an element in sorted array A with value k. If k is not in A,return A.length. */ static int binary(int[] A, int k) { int l = -1; // Set l and r int r = A.length; // beyond array bounds while (l+1 != r) { // Stop when l, r meet int i = (l+r)/2; // Check middle if (k < A[i]) r = i; // In left half if (k == A[i]) return i; // Found it if (k > A[i]) l = i; // In right half } return A.length; // Search value not in A } a. Choice 1. Θ ( n ) b. Choice 2. O( 2n ) c. Choice 3. O( log n ) d. Choice 4. Ω( n2 ) (NOTE: code fragment is not intended to be functioning code)
c.
For the following code fragment, select the choice which represents the most appropriate asymptotic analysis: static int function ( n ) { sum = 0; for (j=1; j<=n; j++) for (i=1; i<=j; i++) sum++; return sum; } a. Choice 1. Θ ( n ) b. Choice 2. O( 2n ) c. Choice 3. Θ( n2 ) d. Choice 4. Ω( n2 ) (NOTE: code fragment is not intended to be functioning code)
c.
For the following code fragment, select the option that represents the most appropriate asymptotic analysis: for (int i = 1; i <= n; i *= 2) { for (int j = 0; j < n; j++) { count++; } } Option 1. O( 1 ) Option 2. O( 2n ) Option 3. O( n log n ) Option 4. O( n2 ) Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
c.
In a stack which option would access the 3rd element from the top of the stack S Option 1. S.push(-1); Option 2. S.dequeue(-3); Option 3. S.pop(); S.pop(); S.pop(); Option 4. S.pop(n-3); Select one: a. Option 1 b. Option 2 c. Option 3 d. Option 4
c.
In linked lists there are no NULL links in: Select one: a. Single linked list b. Linear doubly linked list c. Circular linked list d. None of these
c.
Internal Fragmentation refers to: (select the best answer) Select one: a. Space that is left empty because records do not fit evenly into a sector b. Space allocated to a file that is not physically adjacent on the disk drive c. Space that is left empty because records do not fit evenly into a sector or Space allocated to a file that is not physically adjacent d. None of the options
c.
When big-Oh and W coincide, we indicate this by using (select the best answer): 1. Big Oh (O) 2. Big Omega (Ω) 3. Big Theta (Θ) 4. Exponential growth Select one: a. Choice 1 b. Choice 2 c. Choice 3 d. Choice 4
c.
Which of the following items is NOT true for Array-Based Lists (please select the best choice): Choice 1. Insertion and deletion operations are Q ( n ) Choice 2. Direct access of an item in the array is Q( 1 ) Choice 3. Space used grows dynamically as the array is populated Choice 4. Array contains wasted space if array positions are not full Select one: a. Choice 1 b. Choice 2 c. Choice 3 d. Choice 4
c.
A finite set of one or more nodes such that there is one designated node call the root is a: (select the best answer) Select one: a. Parent root b. a B+ tree data structure c. Index d. Tree
d.
A method that is designed to create extremely shallow trees is called: Select one: a. Dynamic node implementation b. Union/Find c. The list of children method d. Path compression
d.