tree_debug.go 578 B

123456789101112131415161718192021222324252627282930313233
  1. //go:build debug
  2. // +build debug
  3. package search
  4. import "fmt"
  5. func (t *Tree) Print() {
  6. if t.root.item == nil {
  7. fmt.Println("/")
  8. } else {
  9. fmt.Printf("/:%#v\n", t.root.item)
  10. }
  11. printNode(t.root, 1)
  12. }
  13. func printNode(n *node, depth int) {
  14. indent := make([]byte, depth)
  15. for i := 0; i < len(indent); i++ {
  16. indent[i] = '\t'
  17. }
  18. for _, children := range n.children {
  19. for k, v := range children {
  20. if v.item == nil {
  21. fmt.Printf("%s%s\n", string(indent), k)
  22. } else {
  23. fmt.Printf("%s%s:%#v\n", string(indent), k, v.item)
  24. }
  25. printNode(v, depth+1)
  26. }
  27. }
  28. }