Priority queue: Difference between revisions
m
→{{header|Zig}}
imported>Pjfarley3 m (Remove DYNAM compiler option from PROCESS compiler directives leading each program.) |
Nima.trueway (talk | contribs) m (→{{header|Zig}}) |
||
Line 8,975:
/// fn(T, T) bool
const Comparator = struct {
fn maxCompare(_: void, a: Task, b: Task)
return std.math.order(a.priority
}
fn minCompare(_: void, a: Task, b: Task)
return std.math.order(a.priority
}
};
Line 8,987:
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
var pq = PriorityQueue(Task, void, Comparator.maxCompare).init(allocator,
▲ var pq = PriorityQueue(Task).init(allocator, Comparator.maxCompare);
defer pq.deinit();
Line 8,997 ⟶ 8,996:
try pq.add(Task.init(1, "Solve RC tasks"));
try pq.add(Task.init(2, "Tax returns"));
try testing.expectEqual(pq.count(), 5);
std.debug.print("\n", .{});
Line 9,004 ⟶ 9,003:
while (pq.count() != 0) {
const task = pq.remove();
std.debug.print("Executing:
}
std.debug.print("\n", .{});
Line 9,012 ⟶ 9,011:
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
defer arena.deinit();
var pq = PriorityQueue(Task, void, Comparator.minCompare).init(allocator,
▲ var pq = PriorityQueue(Task).init(allocator, Comparator.minCompare);
defer pq.deinit();
Line 9,022 ⟶ 9,020:
try pq.add(Task.init(1, "Solve RC tasks"));
try pq.add(Task.init(2, "Tax returns"));
try testing.expectEqual(pq.count(), 5);
std.debug.print("\n", .{});
Line 9,029 ⟶ 9,027:
while (pq.count() != 0) {
const task = pq.remove();
std.debug.print("Executing:
}
std.debug.print("\n", .{});
}
</syntaxhighlight>
|