一、结构
1.1、结构的创建
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/02f7c0f44c2fce10c7ccc561f0708fda.png)
案例
package main
import "fmt"
//定义结构
type treeNode struct {
value int
left, right *treeNode
}
func main() {
var root treeNode
// 构建 value=3,2,1的节点
root = treeNode{value: 3}
root.left = &treeNode{value: 2}
root.left.left = &treeNode{value: 1}
// 构建 value4,5的节点
root.right = &treeNode{4, nil, nil}
root.right.right = &treeNode{5, nil, nil}
// 可以通过new 函数 构建 对象
// root.right.right = new(treeNode)
fmt.Println("treenode:", root)
}
输出
treenode: {3 0xc000004078 0xc0000040a8}
1.2、构造函数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3783f54a1a2a2a6e8769ffe8a5800383.png)
package main
import "fmt"
//定义结构
type treeNode struct {
value int
left, right *treeNode
}
//自己来控制构造函数
func createTreeNode(v int) *treeNode {
return &treeNode{value: v}
}
func main() {
// 构建 value 3, 2,1 的节点
root := createTreeNode(3)
root.left = createTreeNode(2);
root.left.left = createTreeNode(1);
// 构建 value 4,5的节点
root.right = createTreeNode(4);
root.right.right = createTreeNode(5);
fmt.Println("treenode:", root)
}
1.3、接受者函数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4438ba7c7301fa6c756bbd2df484d37f.png)
package main
import "fmt"
//定义结构
type treeNode struct {
value int
left, right *treeNode
}
//自己来控制构造函数
func createTreeNode(v int) *treeNode {
return &treeNode{value: v}
}
//接受者函数
func (node treeNode) printNodeValue() {
fmt.Println("treeNode:", node.value)
}
func main() {
// 构建 value 3, 2,1 的节点
root := createTreeNode(3)
//root 当做参数传进去
root.printNodeValue()
}
输出
treeNode: 3
1.4、其他
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3dc09972cf6bef5b179d444085c71ddd.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/587a4167a3914abc6526123d12526579.png)