评论

收藏

[Java] JAVA数据结构之汉诺塔代码实例

编程语言 编程语言 发布于:2021-08-17 12:51 | 阅读数:449 | 评论:0

本文实例为大家分享了java数据结构之汉诺塔的具体代码,供大家参考,具体内容如下
package p02.动态链表;
 
import p01.动态数组.stack;
 
public class linkedstack<e> implements stack<e> {
  private linkedlist<e> list;
  public linkedstack(){
    list=new linkedlist<>();
  }
  @override
  public void push(e e) {
    // todo 自动生成的方法存根
    list.addfrist(e);
  }
  @override
  public e pop() {
    // todo 自动生成的方法存根
    return list.removefrist();
  }
  @override
  public boolean isempty() {
    // todo 自动生成的方法存根
    return list.isempty();
  }
  @override
  public e peek() {
    // todo 自动生成的方法存根
    return list.getfrist();
  }
  @override
  public int getsize() {
    // todo 自动生成的方法存根
    return list.getsize();
  }
  @override
  public void clear() {
    // todo 自动生成的方法存根
    list.clear();
  }
  @override
  public string tostring() {
    // todo 自动生成的方法存根
    return list.tostring();
  }
  
}
//用前边实现的链栈去实现汉诺塔
package p03.递归;
 
import p02.动态链表.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;
    linkedstack<integer> stackx=new linkedstack();
    for(int i=n;i>=1;i--){
      stackx.push(i);
    }
    linkedstack<integer> stacky=new linkedstack();
    linkedstack<integer> stackz=new linkedstack();
    
    move(stackx,stacky,stackz,n);
    
    system.out.println(stackx);
    system.out.println(stackz);
 
  }
  //定义三个栈,实现其移动
  public static void move(linkedstack<integer> x,linkedstack<integer> y, linkedstack<integer> 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);
    }
    
  }
  //只打印移动过程。
  /*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);
    
  }*/
 
}
以上所述是小编给大家介绍的java数据结构之汉诺塔详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对CodeAE代码之家网站的支持!

关注下面的标签,发现更多相似文章