2013-11-18 2 views
-5

Im пытается выяснить, почему мой код Ханоя рекурсии Isnt работы:/Башни Ханоя

public class Hanoiprog extends Thread 
{ 
    private Hanoi hanoi; 

    public Hanoiprog(Hanoi hanoi) 
    { 
     this.hanoi = hanoi; 
    } 

    public void run() 
    { 
     playHanoi(hanoi.getdisks(), 0, 1, 2); 
    } 

    public void playHanoi(int disks, int from, int to, int temp) 
    { 
     if (disks == 1){ 
      hanoi.move(0, 1); 
     } else{ 
      playHanoi(disks - 1, from, temp, to); 
      hanoi.move(0, 2); 
      playHanoi(disks - 1, temp, to, from); 



     } 

    } 

Я не понимаю, почему это не правда работает. Это действительно все об этом коде. Остальные мои занятия отлично. Башни имеют индексы 0,1,2. Надеюсь, ты мне поможешь

Я знаю, что в Интернете есть ответы, но на самом деле каждый раз тот же код и его похожие на мои. Но он, похоже, не работает?

+0

Как это не работает? Нам нужна дополнительная информация. – Dragondraikk

+0

со всем этим кодом Я не могу понять, как он не работает, но я могу, но, пожалуйста, предоставьте дополнительную информацию, мы делаем это бесплатно, поэтому, пожалуйста, не торгуйтесь с кодом – RamonBoza

+0

Пожалуйста, предоставьте полное решение. –

ответ

0
FUNCTION MoveTower(disk, source, dest, spare): 
IF disk == 0, THEN: 
    move disk from source to dest 
ELSE: 
    MoveTower(disk - 1, source, spare, dest) // Step 1 above 
    move disk from source to dest    // Step 2 above 
    MoveTower(disk - 1, spare, dest, source) // Step 3 above 
END IF 

Источник:http://www.cs.cmu.edu/~cburch/survey/recurse/hanoiimpl.html

+0

Почему downvote? OP может легко сравнивать и видеть там проблему. –

+0

Не так ли это? Я нашел этот код в Интернете, а также , но мой не работает по какой-то причине ... – user3002086

+0

@ user3002086 Редактировать исходный вопрос, чтобы включить весь ваш код. –

Смежные вопросы