Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Tree<T: Comparable> {
- let root: T
- var left: Tree?
- var right: Tree?
- init(root: T) {
- self.root = root
- }
- func search(value: T) -> Tree? {
- guard value != root else { return self }
- return value < root ? left?.search(value: value) : right?.search(value: value)
- }
- func insert(value: T) {
- guard value != root else { return }
- if value < root {
- left?.insert(value: value)
- if left == nil {
- left = Tree(root: value)
- }
- } else {
- right?.insert(value: value)
- if right == nil {
- right = Tree(root: value)
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement