數字循環右移
題目如下:
一個數組a中存有n(>0)個整數,將每個整數循環向右移m(≥0)個位置,即將a中的數據由(a0 a1 ⋯an−1 )變換為(an−m ⋯an−1 a0 a1 ⋯an−m−1 )(最后m個數循環移至最前面的m個位置)。
我的思路:
題目明確告訴我們要將每個整數循環向右移動,所以這題可以嵌套循環,逐個移動,容易理解,但效率相對低一點。使用鏈表可以提高效率。解決這個問題我們需要知道用戶傳入數據的數量n以及移動的位數m。
方法一:
創建一個數組保存用戶傳入的數據,每一次循環中先將數組的最后一個數保存到臨時變量里,然后逐個右移賦值,再將臨時變量賦值給第一個數組元素,進行m個循環即可。

流程圖如下:
方法二:
使用尾插法建立一個鏈表存放用戶傳入的數據,先連后斷,先讓表尾指向表頭,再找到指定的位置斷開並把斷開后的下一個結點作為表頭
核心代碼如下:(建立鏈表部分省略)


