โจทย์
ได้รับ Minimum Heap หาค่าสูงสุดใน Heap นั้น
ตัวอย่าง
ถ้า Heap อินพุตคือ

ค่าสูงสุดคือ 55
อัลกอริทึม
- ใน Min Heap โหนดพาเรนต์จะน้อยกว่าลูกเสมอ ดังนั้น Non-leaf Node จึงไม่สามารถเป็นค่าสูงสุดได้
- ค้นหาค่าสูงสุดใน Leaf Nodes เท่านั้น
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
int getMaxElement(int* heap, int n) {
int maxVal = heap[n / 2];
for (int i = n / 2 + 1; i < n; ++i) {
maxVal = max(maxVal, heap[i]);
}
return maxVal;
}
int main() {
int heap[] = {15, 27, 22, 35, 29, 55, 48};
int n = sizeof(heap) / sizeof(heap[0]);
cout << "Maximum element = " << getMaxElement(heap, n) << endl;
return 0;
}
ผลลัพธ์
Maximum element = 55