雙向迴圈鍊錶列印字母

2021-09-25 10:54:28 字數 1016 閱讀 4957

要求實現使用者輸入乙個數使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...