要求實現使用者輸入乙個數使26個字母的排列發生變化,解題:利用雙向迴圈鍊錶,按順序生成字母。若輸入值為正,則順序遍歷鍊錶到該值處輸出。例如使用者輸入3,輸入結果:
defghijklmnopqrstuvwxyzabc
同時需要支援負數,例如使用者輸入-3,輸出結果:
xyzabcdefghijklmnopqrstuvw
若輸入為負值,則反向遍歷鍊錶到該數值處輸出。
package com.yc.algorithm.list;
/** * 要求實現使用者輸入乙個數使26個字母的排列發生變化,
* 例如使用者輸入3,輸入結果:
* defghijklmnopqrstuvwxyzabc
* 同時需要支援負數,例如使用者輸入-3,輸出結果:
* xyzabcdefghijklmnopqrstuvw
* * @author yc
*/public class caeser
/*** 初始化雙向迴圈鍊錶
* @return
*/private static doublist initlist()
curr.next = head.next;
head.next.prior = curr;
return curr.next;
}/**
* 列印迴圈鍊錶
* @param head
*/private static void printdoublist(doublist head)
system.out.println(temp.value);
}private static void caeser(int n) while (--n > 0);
}if (n < 0) while (++n < 0);
}printdoublist(head);
}}class doublist
}
輸出結果如下: 列印字母塔
問題 編寫程式,輸出以下形狀的字母塔 aaba abcba abcdcba abcd.z.dcba 分析 求解此問題有兩個關鍵步驟 一是確定每一行前導空格符的數目 二是按照一定的規律輸出大寫英文本母。顯然,一共將輸出26行。所編的程式應能保證最後一行的前導控制符數目至少為0,不妨設最後一行有10個前...
雙向鍊錶和雙向迴圈鍊錶
和單向鍊錶相比,多了乙個前驅結點。如果他為空,那麼next和prior都指向自己。而對於雙迴圈鍊錶,只需要最後乙個元素的next指向head next,head next的prior指向最後乙個節點即可。新節點s插入鍊錶,s next給p結點,s prior給p prior,然後,p prior n...
迴圈鍊錶,雙向鍊錶
迴圈鍊錶 迴圈鍊錶與順序鍊錶之間的區別 迴圈鍊錶最後乙個資料的next指標域不為空,而是指向頭結點,其他基本操作大體相同,只是在判斷表結束的條件變為判斷節點的引用域是否為頭引用 雙向鍊錶 author neosong date oct 10,2017 4 43 01 pm program of in...