Hi I need to write a method that will rotate the elemnts in an array by a factor of k. ie shift each element k places to the right.

Here is the question i have been set

In the class ArrayLinearList a linear list is represented in an one-dimensional array element. The data member size is such that the list elements are in positions 0 through size-1 of the array. Write a new method rotate that will rotate the elements of the linear list k positions to the right. For example, if the list element[0:5] = [1, 2, 3, 4, 5, 6] is rotated by k=3, the result is [4, 5, 6, 1, 2, 3].

I've tried by inserting an element once i've shifted the elements one place to the right but I'm sure that this is incorrect. If anyone can be of any help I will be very grateful.

Mus.

Hi everyone,

What you can do is get the factor and add the array position of the variable to that factor and then that will be the new array position of the variable

If the new variable position in the array exceeds the array length ,minus the the array length from the new array position of the variable.

Put this in a loop and loop it for all the variables in the array

I hope this helps you

Yours Sincerely

Richard West

Remember that arrays in Java don't grow so you need to take care of the buffering yourself.

If you move say 5 places to the right, create a buffer of 5 elements.
Move the last 5 elements out of the array into the buffer, then move every element in the array (except those 5) 5 places to the right.
Finally most those 5 elements into the first 5 positions in the original array.

This article has been dead for over six months. Start a new discussion instead.