Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- fn Node(comptime T: type) type {
- return struct {
- parent: ?*Node(T),
- children: [2]?*Node(T),
- color: Color,
- data: T,
- };
- }
- fn Iterator(comptime T: type) type {
- const ret = struct {
- node: ?*Node(T),
- pub fn next(self: ret) ?*Node(T) {
- std.debug.print("{}\n", .{self.node});
- if (self.node) |n| {
- if (n.children[1]) |c| {
- node = c;
- while (node != null) node = node.?.children[0];
- } else node = node.parent;
- return node;
- } else return null;
- }
- };
- return ret;
- }
- pub fn main() void {
- var it = Iterator(i32){.node = rb.root};
- while (it.next()) |e| std.debug.print("{} ", .{e});
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement