You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
// File: hanota_test.go
|
|
|
|
// Created Time: 2023-07-21
|
|
|
|
// Author: hongyun-robot (1836017030@qq.com)
|
|
|
|
|
|
|
|
package chapter_divide_and_conquer
|
|
|
|
|
|
|
|
import (
|
|
|
|
"container/list"
|
|
|
|
"fmt"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
. "github.com/krahets/hello-algo/pkg"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestHanota(t *testing.T) {
|
|
|
|
// 列表尾部是柱子顶部
|
|
|
|
A := list.New()
|
|
|
|
for i := 5; i > 0; i-- {
|
|
|
|
A.PushBack(i)
|
|
|
|
}
|
|
|
|
B := list.New()
|
|
|
|
C := list.New()
|
|
|
|
fmt.Println("初始状态下:")
|
|
|
|
fmt.Print("A = ")
|
|
|
|
PrintList(A)
|
|
|
|
fmt.Print("B = ")
|
|
|
|
PrintList(B)
|
|
|
|
fmt.Print("C = ")
|
|
|
|
PrintList(C)
|
|
|
|
|
|
|
|
solveHanota(A, B, C)
|
|
|
|
|
|
|
|
fmt.Println("圆盘移动完成后:")
|
|
|
|
fmt.Print("A = ")
|
|
|
|
PrintList(A)
|
|
|
|
fmt.Print("B = ")
|
|
|
|
PrintList(B)
|
|
|
|
fmt.Print("C = ")
|
|
|
|
PrintList(C)
|
|
|
|
}
|