最大堆的初始化 插入和刪除

2021-08-11 15:08:28 字數 849 閱讀 4914

最大堆為完全二叉樹,採用陣列存放資料,父節點的值永遠比左右孩子大,但兄弟之間值的大小並不確定。

heap.h:

#ifndef heap_h_included

#define heap_h_included

#includeusing namespace std;

int const max = 20;

templateclass maxheap

print();

init(); //初始化最大堆

}void init()}}

int adjust(int j)

return -1;

}bool isleaf(int index)

void print()

}void del(t item)

--num;

comptree[index] = comptree[num]; //用尾結點的值替換當前結點

while(index <= (num - 2) / 2)

}};#endif // heap_h_included

主函式測試 main.cpp:

#include"heap.h"

int main()

; maxheapheap(arr, 10);

heap.print();

heap.insert(100);

heap.print();

heap.del(80);

heap.print();

return 0;

}

最大堆 插入和刪除操作

最大堆是一棵完全二叉樹,也是一棵最大樹 即對於每個結點,其關鍵字的值不小於兒子結點的關鍵字值 一.堆的儲存結構 typedef struct element element heap max elements intn 0 二.在堆中插入元素 void element copy element ps...

最大堆插入及刪除

乙個最大堆類似一顆完全二叉樹,從上到下逐層遞減。向乙個最大堆插入資料時,先把數放在堆末尾,和其父母比較後放到合適位置,具體 為 while k 1 data k 2 data k 為新資料的位置從乙個最大堆中取出根節點時,先將根節點和尾子樹交換位置,然後刪除最後一位,對新換上的根節點進行迴圈判斷,先...

順序表的初始化 刪除 插入

初始化線性表 include include include define list init size 100 define listincrement 10 define ok 1 define error 0 define overflow 2 struct sqlist char elem ...