[汉诺塔递归算法]汉诺塔迭代算法(Towers of Hanoi, classic problem (recursiv

时间:2015-03-01  来源:C语言  阅读:


//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);
     }
     }
 
 } 

[汉诺塔递归算法]汉诺塔迭代算法(Towers of Hanoi, classic problem (recursiv

http://m.bbyears.com/asp/13308.html

推荐访问:汉诺塔问题递归算法
相关阅读 猜你喜欢
本类排行 本类最新