zoukankan      html  css  js  c++  java
  • 优先队列插入、删除

     1 #include<stdio.h>
     2 #include<malloc.h>
     3 void shift_down(int a[], int low, int high)
     4 {
     5     int i = low, j = i*2;
     6     int tmp = a[i];
     7     while(j <= high){
     8         if(j < high && a[j] < a[j+1])
     9             j++;
    10         if(tmp < a[j]){
    11             a[i] = a[j];
    12             i = j;
    13             j = i*2;
    14         }
    15         else break;
    16     }
    17     a[i] = tmp;
    18 } 
    19 void shift_up(int a[], int low, int high)
    20 {
    21     int i = high/2, j = high;
    22     int tmp = a[high];
    23     while(i >= 1){
    24         if(a[i] < tmp){
    25             a[j] = a[i];
    26             j = i;
    27             i = j/2;
    28         }
    29         else break;
    30     }
    31     a[j] = tmp;
    32 }
    33 void print(int a[], int n)
    34 {
    35     int i;
    36     for(i = 1; i <= n; i++){
    37         printf("%d ", a[i]);
    38     }
    39     printf("
    ");
    40 }
    41 int main()
    42 {
    43     int n, i, a[110];
    44     scanf("%d", &n);
    45     for(i = 1; i <= n; i++){
    46         scanf("%d", &a[i]);
    47     }
    48     for(i = n/2; i >= 1; i--){
    49         shift_down(a, i, n);
    50     } //建立大顶堆 
    51     print(a, n);
    52     
    53     printf("删除大顶堆顶:"); 
    54     a[1] = a[n];//删除当前最大元素 
    55     n--; 
    56     shift_down(a, 1, n);
    57     print(a, n); 
    58     
    59     printf("插入一个值:"); 
    60     n++;
    61     scanf("%d", &a[n]);
    62     shift_up(a, 1, n);
    63     print(a, n);
    64     return 0;
    65 } 
    66 /*10
    67 6 8 7 9 0 1 3 2 4 5*/
  • 相关阅读:
    Ubuntu 忘记root密码的解决方法
    zabbix 参数说明
    Python 进阶_OOP 面向对象编程_self 的实例绑定
    centos 6.5关闭NetworkManager
    本地yum源
    VMware通过VMnet8共享本地网络
    EasyUI之手风琴Accordion
    php 分页
    修改css
    /Home/Tpl/Equipment/rangeIndex.html 里调用魔板
  • 原文地址:https://www.cnblogs.com/Surprisezang/p/10563780.html
Copyright © 2011-2022 走看看