mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 04:48:29 +08:00
32 lines
544 B
Go
32 lines
544 B
Go
// node_structures.go
|
|
package main
|
|
|
|
import "fmt"
|
|
|
|
type Node struct {
|
|
le *Node
|
|
data interface{}
|
|
ri *Node
|
|
}
|
|
|
|
func NewNode(left, right *Node) *Node {
|
|
return &Node{left, nil, right}
|
|
}
|
|
|
|
func (n *Node) SetData(data interface{}) {
|
|
n.data = data
|
|
}
|
|
|
|
func main() {
|
|
root := NewNode(nil, nil)
|
|
root.SetData("root node")
|
|
// make child (leaf) nodes:
|
|
a := NewNode(nil, nil)
|
|
a.SetData("left node")
|
|
b := NewNode(nil, nil)
|
|
b.SetData("right node")
|
|
root.le = a
|
|
root.ri = b
|
|
fmt.Printf("%v\n", root) // Output: &{0x125275f0 root node 0x125275e0}
|
|
}
|