node_structures.go 544 B

12345678910111213141516171819202122232425262728293031
  1. // node_structures.go
  2. package main
  3. import "fmt"
  4. type Node struct {
  5. le *Node
  6. data interface{}
  7. ri *Node
  8. }
  9. func NewNode(left, right *Node) *Node {
  10. return &Node{left, nil, right}
  11. }
  12. func (n *Node) SetData(data interface{}) {
  13. n.data = data
  14. }
  15. func main() {
  16. root := NewNode(nil, nil)
  17. root.SetData("root node")
  18. // make child (leaf) nodes:
  19. a := NewNode(nil, nil)
  20. a.SetData("left node")
  21. b := NewNode(nil, nil)
  22. b.SetData("right node")
  23. root.le = a
  24. root.ri = b
  25. fmt.Printf("%v\n", root) // Output: &{0x125275f0 root node 0x125275e0}
  26. }