heap

原创 2016年08月29日 22:51:34
#include<bits/stdc++.h>
using namespace std;

template<typename T> class Heap{
    private:
        T a[100];
        int index;
    public:
        void heapipy();
        void push(T e);
        T top();
        void pop();
        Heap();
};

int main(){
    Heap<int> a;
    while(true){
        cout<<"1:push 2:top 3:pop"<<endl;
        int choice;
        cin>>choice;
        int value;
        switch(choice){
            case 1:
                cout<<"value:\t";
                cin>>value;
                a.push(value);
                break;
            case 2:
                cout<<a.top()<<endl;
                break;
            case 3:
                a.pop();
        }
    }
    return 0;
}

template<typename T> void Heap<T>::push(T e){
    a[++index] =  e; 
    int n = index;
    while(n/2){
        if(a[n/2]<a[n]){
            swap(a[n/2],a[n]);
        }
        else
            break;
    }
    return ;
}

template<typename T> Heap<T>::Heap(){
    index = 0;
}

template<typename T> void Heap<T>::pop(){
    if(index){
        a[1] = a[index];
        int n = 1;
        while(2*n<index){
            if(2*n+1<index){
                if(a[2*n]<a[2*n+1]){
                    if(a[n]<a[2*n+1]){
                        swap(a[n],a[2*n+1]);
                        n = 2*n+1;
                    }else{
                        break;
                    }
                }else{
                    if(a[n]<a[2*n]){
                        swap(a[n],a[2*n]);
                        n = 2*n;
                    }else{
                        break;
                    }
                }
            }else{
                if(a[n]<a[2*n]){
                    swap(a[n],a[2*n]);
                    n = 2*n;
                }else{
                    break;
                }
            }
        }
        index--;
    }
    return ;
}

template<typename T>  T Heap<T>::top(){
    if(index)
        return a[1];
    return -1;
}

JVM-GC总结-配置实战--第三发

配置举例1:vm args: -Xms60m -Xmx60m -XX:NewRatio=2 -XX:SurvivorRatio=3 -XX:MaxPermSize=30m -XX:MaxTenur...
  • lucas421634258
  • lucas421634258
  • 2015年04月23日 11:20
  • 1110

hadoop的mapreduce作业中经常出现Java heap space解决方案

我们经常遇到这样的问题,内存溢出,内存溢出的原因是很简单,不够用了,不够用该怎么设置,通过水设置。可以参考下面案例 一、hadoop的mapreduce作业中经常出现Java heap space解...
  • xiaoshunzi111
  • xiaoshunzi111
  • 2016年08月10日 16:30
  • 2874

ElasticSearch优化系列四:ES的heap是如何被瓜分掉的

ElasticSearch优化系列四:ES的heap是如何被瓜分掉的 字数1784 阅读273 评论3 喜欢2 以下分别解读几个我知道的内存消耗大户: Segment Memor...
  • javastart
  • javastart
  • 2016年09月13日 18:52
  • 1358

Path in a Heap.zip

  • 2015年06月16日 16:24
  • 478KB
  • 下载

斐波那契堆(Fibonacci Heap)

  • 2017年02月25日 21:03
  • 59KB
  • 下载

二项堆(Binomial Heap)

  • 2017年02月18日 11:15
  • 68KB
  • 下载

迪杰斯克拉+heap

  • 2014年07月16日 16:05
  • 2KB
  • 下载

Weblogic Heap文件分析器2.5

  • 2010年03月17日 09:56
  • 10.64MB
  • 下载

堆溢出攻击教程(heap overflow attack)

  • 2010年05月12日 09:57
  • 652KB
  • 下载

IBM Heap analyzer

  • 2013年07月17日 17:53
  • 5.28MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:heap
举报原因:
原因补充:

(最多只允许输入30个字)