Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a method shift that takes a stack of integers and an integer n as paramete

ID: 3650366 • Letter: W

Question

Write a method shift that takes a stack of integers and an integer n as parameters and that shifts n values from the bottom of the stack to the top of the stack. For example, if a variable called s stores the following sequence of values:
bottom [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] top

If we make the call shift(s, 6); the method shifts the six values at the bottom of the stack to the top of the stack and leaves the other values in the same order producing:
bottom [7, 8, 9, 10, 6, 5, 4, 3, 2, 1] top

Notice that the value that was at the bottom of the stack is now at the top, the value that was second from the bottom is now second from the top, the value that was third from the bottom is now third from the top, and so on, and that the four values not involved in the shift are now at the bottom of the stack in their original order. If s had stored these values instead:
bottom [7, 23, -7, 0, 22, -8, 4, 5] top

If we make the following call: shift(s, 3); then s should store these values after the call:
bottom [0, 22, -8, 4, 5, -7, 23, 7] top

You are to use one queue as auxiliary storage to solve this problem. You may assume that the parameter n is >= 0 and not larger than the number of elements in the stack.

Explanation / Answer

import java.io.*; import java.util.*; public class StackImplement{ Stack stack; String str; int num, n; public static void main(String[] args){ StackImplement q = new StackImplement(); } public StackImplement(){ try{ stack = new Stack(); InputStreamReader ir = new InputStreamReader(System.in); BufferedReader bf = new BufferedReader(ir); System.out.print("Enter number of elements : "); str = bf.readLine(); num = Integer.parseInt(str); for(int i = 1; i
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote