1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

example: improve binary search tree example (#10226)

This commit is contained in:
Ruofan XU
2021-05-28 01:13:02 +08:00
committed by GitHub
parent 2b62dca000
commit 4e55b9c08e
3 changed files with 32 additions and 24 deletions

View File

@ -11,8 +11,7 @@ type Tree = Empty | Node
// return size(number of nodes) of BST
fn size(tree Tree) int {
return match tree {
// TODO: remove int() once match gets smarter
Empty { int(0) }
Empty { 0 }
Node { 1 + size(tree.left) + size(tree.right) }
}
}
@ -131,20 +130,24 @@ fn test_match_with_complex_sumtype_exprs() {
}
print('[1] after insertion tree size is ') // 11
println(size(tree))
assert size(tree) == 11
del := [-0.3, 0.0, 0.3, 0.6, 1.0, 1.5]
for i in del {
tree = delete(tree, i)
}
print('[2] after deletion tree size is ') // 7
print(size(tree))
print(', and these elements were deleted: ') // 0.0 0.3 0.6 1.0
assert size(tree) == 7
print(', and these elements were deleted: ') // 0.0 0.3 0.6 1.0
mut deleted := []f64{}
for i in input {
if !search(tree, i) {
print(i)
print(' ')
deleted << i
}
}
deleted.sort()
assert deleted == [0.0, 0.3, 0.6, 1.0]
println('')
assert true
}