Climbing的专栏

Life is limited, but art is long

huang ClimbingID:hpdlzu80100
[修改头像]
1565次访问,排名2万外好友5人,关注者6
热爱生活,积极向上,流自己的汗,吃自己的饭!
hpdlzu80100的文章
原创 23 篇
翻译 0 篇
转载 2 篇
评论 0 篇
最近评论
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
    相册
    存档

    原创 汉诺塔迭代算法(Towers of Hanoi, classic problem (recursive method))

    新一篇: 简单航班订票模拟系统(Airline Reservation Sysytem, a simple simulation)

    //Towers of Hanoi, classic problem (recursive method)
    //Java how to program, 5/e, Exercise 6.37-38
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class HanoiTowers extends JApplet implements ActionListener {
     
    int number, starting, destination, temp;
     JLabel numberLabel, startingLabel, destinationLabel, tempLabel;
     JTextField numberField, startingField, destinationField, tempField;
     JTextArea output;
     JScrollPane scroller;

     
    public void init()
     
    {
         
         Container  container
    =getContentPane();
         container.setLayout(
    new FlowLayout());
         
         numberLabel
    = new JLabel("Enter the number of disks:");
         container.add(numberLabel);
         
         numberField
    =new JTextField(10);
         container.add(numberField);
         
         startingLabel
    = new JLabel("Enter the starting tower:");
         container.add( startingLabel);
         
         startingField
    =new JTextField(10);
         container.add( startingField);
         
         destinationLabel
    = new JLabel("Enter the destination tower:");
         container.add(destinationLabel);
         
         destinationField
    =new JTextField(10);
         container.add(destinationField);
         
         tempLabel
    = new JLabel("Enter the temporary tower:");
         container.add(tempLabel);
         
         tempField
    =new JTextField(10);
         container.add(tempField);
         
        tempField.addActionListener(
    this);
         
         output
    =new JTextArea(17,30);
         scroller
    =new JScrollPane(output);
         container.add(scroller);
         
         

     }

     
     
    public void actionPerformed (ActionEvent event)
     
    {
        
         number
    =Integer.parseInt(numberField.getText());
         starting
    =Integer.parseInt(startingField.getText());
         destination
    =Integer.parseInt(destinationField.getText());
         temp
    =Integer.parseInt(tempField.getText());
         HanoiRecursiveMethod(number, starting, destination, temp);
         
     }

     
     
    public void HanoiRecursiveMethod(int number, int starting, int destination, int temp)
     
    {
         
    if (number==1)
             output.append(starting
    +"--->"+destination+"\n");
         
    else
         
    {
             HanoiRecursiveMethod(number
    -1,starting,temp,destination);
             output.append(starting
    +"--->"+destination+"\n");
             HanoiRecursiveMethod(number
    -1,temp,destination,starting);
         }

         }

     
     }
     

    发表于 @ 2008年04月15日 13:25:00|评论(loading...)|编辑

    旧一篇: 猜数字小游戏(Guess a number between 1 and 1000)

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © Climbing