這篇文章給大家分享的是有關(guān)JAVA數(shù)據(jù)結(jié)構(gòu)之漢諾塔代碼的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來(lái)看看吧。
十余年的鎮(zhèn)巴網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整鎮(zhèn)巴建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“鎮(zhèn)巴網(wǎng)站設(shè)計(jì)”,“鎮(zhèn)巴網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
具體內(nèi)容如下
package p02.動(dòng)態(tài)鏈表; import p01.動(dòng)態(tài)數(shù)組.Stack; public class LinkedStackimplements Stack { private LinkedList list; public LinkedStack(){ list=new LinkedList<>(); } @Override public void push(E e) { // TODO 自動(dòng)生成的方法存根 list.addFrist(e); } @Override public E pop() { // TODO 自動(dòng)生成的方法存根 return list.removeFrist(); } @Override public boolean isEmpty() { // TODO 自動(dòng)生成的方法存根 return list.isEmpty(); } @Override public E peek() { // TODO 自動(dòng)生成的方法存根 return list.getFrist(); } @Override public int getSize() { // TODO 自動(dòng)生成的方法存根 return list.getSize(); } @Override public void clear() { // TODO 自動(dòng)生成的方法存根 list.clear(); } @Override public String toString() { // TODO 自動(dòng)生成的方法存根 return list.toString(); } }
//用前邊實(shí)現(xiàn)的鏈棧去實(shí)現(xiàn)漢諾塔 package p03.遞歸; import p02.動(dòng)態(tài)鏈表.LinkedStack; public class Hano { public static void main(String[] args) { // String x = "x"; //原始盤 // String y = "y"; //借助盤 // String z = "z"; //最終盤 // move(x,y,z,N); int N=10; LinkedStackstackX=new LinkedStack(); for(int i=N;i>=1;i--){ stackX.push(i); } LinkedStack stackY=new LinkedStack(); LinkedStack stackZ=new LinkedStack(); move(stackX,stackY,stackZ,N); System.out.println(stackX); System.out.println(stackZ); } //定義三個(gè)棧,實(shí)現(xiàn)其移動(dòng) public static void move(LinkedStack x,LinkedStack y, LinkedStack z, int level) { if(level==1){ z.push(x.pop()); }else{ move(x,z,y,level-1); z.push(x.pop()); move(y,x,z,level-1); } } //只打印移動(dòng)過程。 /*public static void move(String x, String y, String z, int level) { if(level==1){ System.out.println(x+"->"+z); return; } move(x,z,y,level-1); System.out.println(x+"->"+z); move(y,x,z,level-1); }*/ }
感謝各位的閱讀!關(guān)于“JAVA數(shù)據(jù)結(jié)構(gòu)之漢諾塔代碼的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!