• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            #define MAXN 10000

            template
            <typename Type>
            class Heap{
                
            private:
                    
            int  size;
                    Type data[MAXN
            +1];
                    
            void siftdown( int pos );
                    
                
            public:
                    Heap();
                    
            void push( Type key );
                    Type pop();
                    
            void make_heap();
                    
            bool empty();
                    
            void clear();
                    
            int  get_size();
            }
            ;

            template
            <typename Type>
            Heap
            <Type>::Heap(){
                size
            = 0; }

                
            template
            <typename Type>
            int Heap<Type>::get_size(){
                
            return size; }


            template
            <typename Type>
            bool Heap<Type>::empty(){
                
            return size== 0;}

                
            template
            <typename Type>
            void Heap<Type>::clear(){
                size
            = 0; }


            template
            <typename Type>
            void Heap<Type>::siftdown( int pos ){
                
            while( pos<<1<= size ){
                    
            int t= pos<<1
                    
            if( (pos<<1)+ 1<= size && data[(pos<<1)+1]<data[t] ) t= (pos<<1)+ 1;
                    
            if( data[t]< data[pos] ){
                        Type tmp
            = data[t]; data[t]= data[pos]; data[pos]= tmp;
                        pos
            = t; }

                    
            else break;
                }

            }


            template
            <typename Type>
            void Heap<Type>::push( Type key ){
                data[
            ++size]= key;
                
            int pos= size;
                
            while( pos> 1 ){
                    
            if( data[pos>>1]> data[pos] ){
                        Type tmp
            = data[pos]; 
                        data[pos]
            = data[pos>>1]; data[pos>>1]= tmp;
                        pos
            >>= 1; }

                    
            else break;
                }

            }


            template
            <typename Type>
            Type Heap
            <Type>::pop(){
                Type tmp
            = data[1]; data[1]= data[size];
                data[size]
            = tmp; size--;
                siftdown(
            1); return data[size+1];
            }
            posted on 2009-04-16 18:31 Darren 閱讀(4364) 評論(4)  編輯 收藏 引用

            評論:
            # re: 最小堆的實現(c++模板) 2009-04-16 22:57 | 打醬油
            傳說中的手寫堆?Orz。。。  回復  更多評論
              
            # re: 最小堆的實現(c++模板) 2009-04-17 16:57 | brightcoder
            void make_heap()定義哪去了?  回復  更多評論
              
            # re: 最小堆的實現(c++模板) 2009-04-17 17:04 | Darren
            @brightcoder
            那個應該很好寫了,循環一次就行了。
            本來是要寫的,不過發現一次次插入就能建堆了。
              回復  更多評論
              
            # re: 最小堆的實現(c++模板) 2009-05-17 16:55 | myo1olove
            高人!!!
            太敬佩你了,我已‘偷借’你好幾篇代碼了!!!
            thank you  回復  更多評論
              
            久久久精品国产Sm最大网站| 狠狠干狠狠久久| 97精品依人久久久大香线蕉97| 久久人与动人物a级毛片| 久久精品国产亚洲av日韩| 一本久久a久久精品综合夜夜| 久久精品国产欧美日韩| 亚洲日本va中文字幕久久| 九九久久精品无码专区| 久久天天躁狠狠躁夜夜avapp| 狠狠狠色丁香婷婷综合久久俺| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 2020久久精品国产免费| 久久人人爽人爽人人爽av| 精品熟女少妇av免费久久| 亚洲午夜无码AV毛片久久| 欧美久久综合性欧美| 久久精品国产亚洲av麻豆小说| 欧美午夜精品久久久久久浪潮| 亚洲国产精品久久66| 久久精品国产亚洲精品2020| 久久久国产99久久国产一| 国产 亚洲 欧美 另类 久久| 久久男人Av资源网站无码软件| 欧美粉嫩小泬久久久久久久| 国产精品无码久久综合网| 久久精品国内一区二区三区| 人妻无码中文久久久久专区| 久久精品国产日本波多野结衣| 无夜精品久久久久久| 久久亚洲国产精品五月天婷| 国产成人综合久久久久久| 99久久精品国产一区二区三区 | 精品蜜臀久久久久99网站| 久久综合给久久狠狠97色| 亚洲乱码中文字幕久久孕妇黑人| 亚洲欧洲久久久精品| 精品综合久久久久久97| 久久久久久人妻无码| 999久久久免费精品国产| 久久精品国产只有精品2020|