mirror of
https://github.com/krahets/hello-algo.git
synced 2024-12-28 05:36:29 +08:00
40 lines
676 B
Go
40 lines
676 B
Go
|
// File: hanota_test.go
|
||
|
// Created Time: 2023-07-21
|
||
|
// Author: hongyun-robot (1836017030@qq.com)
|
||
|
|
||
|
package chapter_divide_and_conquer
|
||
|
|
||
|
import (
|
||
|
"container/list"
|
||
|
"fmt"
|
||
|
. "github.com/krahets/hello-algo/pkg"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
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)
|
||
|
|
||
|
hanota(A, B, C)
|
||
|
|
||
|
fmt.Println("圆盘移动完成后:")
|
||
|
fmt.Print("A = ")
|
||
|
PrintList(A)
|
||
|
fmt.Print("B = ")
|
||
|
PrintList(B)
|
||
|
fmt.Print("C = ")
|
||
|
PrintList(C)
|
||
|
}
|