您的位置:首页 > 其它

汉诺塔迭代算法(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);


}


}




}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: