berry.sample in Code Block Pro – Beautiful Syntax Highlighting 1.27.5, at build/shiki/samples/berry.sample
| 1 | class node |
| 2 | var v, l, r |
| 3 | def init(v, l, r) |
| 4 | self.v = v |
| 5 | self.l = l |
| 6 | self.r = r |
| 7 | end |
| 8 | def insert(v) |
| 9 | if v < self.v |
| 10 | if self.l |
| 11 | self.l.insert(v) |
| 12 | else |
| 13 | self.l = node(v) |
| 14 | end |
| 15 | else |
| 16 | if self.r |
| 17 | self.r.insert(v) |
| 18 | else |
| 19 | self.r = node (v) |
| 20 | end |
| 21 | end |
| 22 | end |
| 23 | def sort(l) |
| 24 | if (self.l) self.l.sort(l) end |
| 25 | l.push(self.v) |
| 26 | if (self.r) self.r.sort(l) end |
| 27 | end |
| 28 | end |
| 29 | |
| 30 | class btree |
| 31 | var root |
| 32 | def insert(v) |
| 33 | if self.root |
| 34 | self.root.insert(v) |
| 35 | else |
| 36 | self.root = node(v) |
| 37 | end |
| 38 | end |
| 39 | def sort() |
| 40 | var l = [] |
| 41 | if self.root |
| 42 | self.root.sort(l) |
| 43 | end |
| 44 | return l |
| 45 | end |
| 46 | end |
| 47 | |
| 48 | var tree = btree() |
| 49 | tree.insert(-100) |
| 50 | tree.insert(5); |
| 51 | tree.insert(3); |
| 52 | tree.insert(9); |
| 53 | tree.insert(10); |
| 54 | tree.insert(10000000); |
| 55 | tree.insert(1); |
| 56 | tree.insert(-1); |
| 57 | tree.insert(-10); |
| 58 | print(tree.sort()); |
| 59 | |
| 60 | # From https://github.com/berry-lang/berry/blob/master/examples/bintree.be |