User Tools

Site Tools


snippets:golang:containers:binarytree

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

snippets:golang:containers:binarytree [2018/03/21 10:56] – created allsparksnippets:golang:containers:binarytree [2018/03/21 11:01] (current) allspark
Line 35: Line 35:
  }  }
  return tree.root.countChildren() + 1  return tree.root.countChildren() + 1
 +}
 +
 +func (tree *Tree) findByAge(age int) *TreeItem {
 + if tree.root == nil {
 + return nil
 + }
 +
 + item := tree.root
 + for item != nil && item.Age != age {
 + if item.Age < age {
 + item = item.right
 + } else if item.Age > age {
 + item = item.left
 + }
 + }
 +
 + if item != nil && item.Age == age {
 + return item
 + }
 + return nil
 } }
  
Line 45: Line 65:
  
  fmt.Println("Count: ", tree.count())  fmt.Println("Count: ", tree.count())
 +
 + f := tree.findByAge(9)
 + fmt.Println(f)
 } }
 +
 ``` ```
snippets/golang/containers/binarytree.1521626205.txt.gz · Last modified: by allspark