汉诺塔迭代算法(Towers of Hanoi, classic problem (recursive method))
2008-04-15 13:25
375 查看
//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);
}
}
}
相关文章推荐
- zoj 2338 The Towers of Hanoi Revisited
- poj 1958 Strange Towers of Hanoi
- poj1958 Strange Towers of Hanoi(递归)
- /* Non-recursive solution to Towers of Hanoi */
- uva 254 - Towers of Hanoi(递归)
- poj 1958 Strange Towers of Hanoi
- HT for Web 3D游戏设计设计--汉诺塔(Towers of Hanoi)
- uva254 - Towers of Hanoi 递归
- F - Towers of Hanoi Strike Back-汉诺塔问题
- poj 1920 Towers of Hanoi
- poj_1958_Strange Towers of Hanoi
- poj 1958 Strange Towers of Hanoi(递推)
- SGU 202 The Towers of Hanoi Revisited (DP+递归)
- poj 1958 Strange Towers of Hanoi…
- Strange Towers of Hanoi
- 汉诺塔(Towers of Hanoi)问题
- poj1958Strange Towers of Hanoi
- HT for Web 3D游戏设计设计--汉诺塔(Towers of Hanoi)
- poj1920 Towers of Hanoi
- POJ 1958 Strange Towers of Hanoi (线性dp 推公式)