fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4. int check_heap(int a[], int n);
  5. void insert(int val, int a[], int *n);
  6.  
  7.  
  8. int main(void) {
  9. int a[11] = {1,13,71,14,15,80,91,24,60,63};
  10. int n;
  11. int i;
  12. int b,c;
  13.  
  14. srandom(time(NULL));
  15. b = random() % 100 + 1;
  16. n = 10;
  17.  
  18. insert(b, a, &n);
  19.  
  20.  
  21. printf("%d\n", check_heap(a, 11));
  22.  
  23.  
  24. for(i = 0; i < 11; i++){
  25.  
  26. printf("%3d", a[i]);
  27.  
  28.  
  29. }
  30.  
  31.  
  32.  
  33.  
  34. return 0;
  35. }
  36.  
  37. int check_heap(int a[], int n) {
  38. int i;
  39. int m;
  40. m = (n - 1) / 2;
  41. for(i = 0; i < m; i++)
  42. {
  43. if(a[i] >= a[i * 2 + 1])
  44. {
  45. return 0;
  46. }
  47. if(a[i] >= a[i * 2 + 2]){
  48. return 0;
  49. }
  50. }
  51.  
  52.  
  53. if(n % 2 == 0){
  54.  
  55. if(a[(n - 1)/2] > a[n - 1]){
  56.  
  57. return 0;
  58. }
  59. }
  60. return 1;
  61.  
  62. }
  63.  
  64. void insert(int val, int a[], int *n) {
  65.  
  66. int temp;
  67.  
  68.  
  69. a[*n] = val;
  70.  
  71.  
  72. while(a[(*n-1) / 2] >= a[*n]){
  73. temp = a[(*n-1) / 2];
  74. a[(*n-1) / 2] = a[*n];
  75. a[*n] = temp;
  76.  
  77. }
  78.  
  79.  
  80.  
  81.  
  82.  
  83. }
  84.  
  85.  
Success #stdin #stdout 0.01s 1676KB
stdin
Standard input is empty
stdout
1
  1 13 71 14 15 80 91 24 60 63 99