Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.69 KB | None | 0 0
  1. class Tree<T: Comparable> {
  2. let root: T
  3. var left: Tree?
  4. var right: Tree?
  5.  
  6. init(root: T) {
  7. self.root = root
  8. }
  9.  
  10. func search(value: T) -> Tree? {
  11. guard value != root else { return self }
  12. return value < root ? left?.search(value: value) : right?.search(value: value)
  13. }
  14.  
  15. func insert(value: T) {
  16. guard value != root else { return }
  17. if value < root {
  18. left?.insert(value: value)
  19. if left == nil {
  20. left = Tree(root: value)
  21. }
  22. } else {
  23. right?.insert(value: value)
  24. if right == nil {
  25. right = Tree(root: value)
  26. }
  27. }
  28. }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement