You are given a list, L, and another list, P, containing integers sorted in ascending order. The operation printLots(L,P) will print the elements in L that are in positions specified by P. For instance, if P = 1, 3, 4, 6, the elements in positions 1, 3, 4, and 6 in L are printed. Write the procedure printLots(L,P). You may use only the public Collections API container operations. What is the running time of your procedure?
Read moreTextbook Solutions for Data Structures and Algorithm Analysis in Java
Question
The following routine removes the first half of the list passed as a parameter:public static void removeFirstHalf( List> lst ){int theSize = lst.size( ) / 2;for( int i = 0; i < theSize; i++ )lst.remove( 0 );}a. Why is theSize saved prior to entering the for loop?b. What is the running time of removeFirstHalf if lst is an ArrayList?c. What is the running time of removeFirstHalf if lst is a LinkedList?d. Does using an iterator make removeHalf faster for either type of List?
Solution
The first step in solving 3 problem number 8 trying to solve the problem we have to refer to the textbook question: The following routine removes the first half of the list passed as a parameter:public static void removeFirstHalf( List> lst ){int theSize = lst.size( ) / 2;for( int i = 0; i < theSize; i++ )lst.remove( 0 );}a. Why is theSize saved prior to entering the for loop?b. What is the running time of removeFirstHalf if lst is an ArrayList?c. What is the running time of removeFirstHalf if lst is a LinkedList?d. Does using an iterator make removeHalf faster for either type of List?
From the textbook chapter Lists, Stacks, and Queues you will find a few key concepts needed to solve this.
Visible to paid subscribers only
Step 3 of 7)Visible to paid subscribers only
full solution