2022-11-25 20:24:51 +08:00
|
|
|
// File: binary_tree_test.go
|
|
|
|
// Created Time: 2022-11-25
|
|
|
|
// Author: Reanon (793584285@qq.com)
|
|
|
|
|
|
|
|
package chapter_tree
|
|
|
|
|
|
|
|
import (
|
2022-12-03 20:25:24 +08:00
|
|
|
"fmt"
|
2022-11-25 20:24:51 +08:00
|
|
|
"testing"
|
2022-11-29 00:48:01 +08:00
|
|
|
|
|
|
|
. "github.com/krahets/hello-algo/pkg"
|
2022-11-25 20:24:51 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestBinaryTree(t *testing.T) {
|
|
|
|
/* 初始化二叉树 */
|
2023-04-09 04:32:17 +08:00
|
|
|
// 初始化节点
|
2022-11-25 20:24:51 +08:00
|
|
|
n1 := NewTreeNode(1)
|
|
|
|
n2 := NewTreeNode(2)
|
|
|
|
n3 := NewTreeNode(3)
|
|
|
|
n4 := NewTreeNode(4)
|
|
|
|
n5 := NewTreeNode(5)
|
2022-12-03 20:25:24 +08:00
|
|
|
// 构建引用指向(即指针)
|
2022-11-25 20:24:51 +08:00
|
|
|
n1.Left = n2
|
|
|
|
n1.Right = n3
|
|
|
|
n2.Left = n4
|
|
|
|
n2.Right = n5
|
2022-12-03 20:25:24 +08:00
|
|
|
fmt.Println("初始化二叉树")
|
|
|
|
PrintTree(n1)
|
2022-11-25 20:24:51 +08:00
|
|
|
|
2023-04-09 04:32:17 +08:00
|
|
|
/* 插入与删除节点 */
|
|
|
|
// 插入节点
|
2022-11-25 20:24:51 +08:00
|
|
|
p := NewTreeNode(0)
|
|
|
|
n1.Left = p
|
|
|
|
p.Left = n2
|
2023-04-09 04:32:17 +08:00
|
|
|
fmt.Println("插入节点 P 后")
|
2022-12-03 20:25:24 +08:00
|
|
|
PrintTree(n1)
|
2023-04-09 04:32:17 +08:00
|
|
|
// 删除节点
|
2022-11-25 20:24:51 +08:00
|
|
|
n1.Left = n2
|
2023-04-09 04:32:17 +08:00
|
|
|
fmt.Println("删除节点 P 后")
|
2022-12-03 20:25:24 +08:00
|
|
|
PrintTree(n1)
|
2022-11-25 20:24:51 +08:00
|
|
|
}
|