aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShawn Landden <shawn@git.icu>2018-08-05 15:11:29 -0700
committerShawn Landden <shawn@git.icu>2018-08-06 22:18:44 -0700
commit5d2abf4402bdbd70eb95cf0d516ce12ff4202101 (patch)
tree51c8d3ce5c93b2a9cd7985275916c36ddb486bb4 /src
parentaa232089f2beaa273458a9fa75b2ba5c70f71805 (diff)
downloadzig-5d2abf4402bdbd70eb95cf0d516ce12ff4202101.tar.gz
zig-5d2abf4402bdbd70eb95cf0d516ce12ff4202101.zip
std: add red-black tree implementation
This is to be used with @fieldParentPtr(); Example: const rb = @import("std").rb; const Number = struct { node: rb.Node, value: i32, }; fn number(node: *rb.Node) *Number { @fieldParentPtr(Number, "node", node); } fn compare(l: *rb.Node, r: *rb.Node) rb.Compare { var left = number(l); var right = number(r); if (left.value < right.value) { return rb.Compare.LessThan; } else if (left.value == right.value) { return rb.Compare.Equal; } else if (left.value > right.value) { return rb.Compare.GreaterThan; } unreachable; } -- A version that caches rb.Tree.first() could be added in the future.
Diffstat (limited to 'src')
0 files changed, 0 insertions, 0 deletions