Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import std.stdio, std.string;
- import std.container.binaryheap;
- struct XD
- {
- int f;
- int s;
- this(int f, int s)
- {
- this.f = f;
- this.s = s;
- }
- int opCmp(const XD xd)
- {
- if (f == xd.f && s == xd.s) return 0;
- if (f < xd.f) return -1;
- if (f == xd.f && s < xd.s) return -1;
- return 1;
- }
- }
- int main(string[] args)
- {
- auto maxHeap = heapify([4, 7, 3, 1, 5]);
- while (!maxHeap.empty)
- {
- writeln(maxHeap.front);
- maxHeap.removeFront;
- }
- auto minHeap = heapify!"a > b"([4, 7, 3, 1, 5]);
- writeln(minHeap.front);
- int[] b;
- BinaryHeap!(int[]) bh = BinaryHeap!(int[])(b, 0);
- foreach (elem; minHeap)
- {
- bh.insert(elem);
- }
- writeln(bh.length);
- writeln(minHeap.length);
- XD[] a;
- a ~= XD(2, 3);
- a ~= XD(1, 4);
- //auto heap = heapify!"a.f > b.f || a.f == b.f && a.s > b.s"(a);
- //auto heap = heapify!((a, b) => a.f > b.f || a.f == b.f && a.s > b.s)(a);
- //auto heap = heapify(a);
- auto heap = a.heapify;
- writeln(heap.front);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement