fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. class heap{
  4. public:
  5. int arr[100];
  6. int size=0;
  7. void insert(int value){
  8. size++;
  9. arr[size]=value;
  10. int i=size;
  11. while(i>1){
  12. int parent=i/2;
  13. if(arr[parent]<arr[i]){
  14. swap(arr[parent],arr[i]);
  15. i=parent;
  16. }
  17. else return ;
  18. }
  19. }
  20.  
  21. void print(){
  22. for(int i=0;i<=size;i++){
  23. cout<<arr[i]<<" ";
  24. }
  25. cout<<endl;
  26. }
  27.  
  28. void del(){
  29. if(size==0){
  30. cout<<"No elements to delete";
  31. return ;
  32. }
  33. arr[1]=arr[size];
  34. size--;
  35. int i=1;
  36. while(i<size){
  37. int leftnode=2*i;
  38. int rightnode=2*i+1;
  39. if(i<size&&arr[i]<arr[leftnode]){
  40. swap(arr[i],arr[leftnode]);
  41. i=leftnode;
  42.  
  43. }
  44. else if (i<size&&arr[i]<arr[rightnode]){
  45. swap(arr[i],arr[rightnode]);
  46. i=rightnode;
  47. }
  48. else
  49. {
  50. return;
  51. }
  52. }
  53. }
  54. };
  55. int main() {
  56. // your code goes here
  57. heap h;
  58. h.insert(10);
  59. h.insert(20);
  60. h.insert(30);
  61. h.insert(5);
  62. h.insert(29);
  63. h.print();
  64. h.del();
  65. h.print();
  66.  
  67. return 0;
  68. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
0 30 29 20 5 10 
0 29 10 20 5