青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

oyjpArt ACM/ICPC算法程序設(shè)計空間

// I am new in programming, welcome to my blog
I am oyjpart(alpc12, 四城)
posts - 224, comments - 694, trackbacks - 0, articles - 6

HEAP

Posted on 2006-09-08 23:25 oyjpart 閱讀(787) 評論(3)  編輯 收藏 引用

?

// 說實話?我還是挺喜歡HEAP這個數(shù)據(jù)結(jié)構(gòu)的?寫個類的HEAP吧?呵呵
// by?Optimistic
// 本程序是大根堆的操作集合?以及堆排序?優(yōu)先級隊列的堆實現(xiàn)
#include? < string .h >
#include?
< iostream >
using ? namespace ?std;

template?
< typename?T >
class ?MaxHeap???????????????? // 大根堆?(本程序使用下標(biāo)與結(jié)點名相同的格式)
{
public :
?MaxHeap(
int ?MaxHeapSize? = ? 10 );
?
~ MaxHeap() {delete?[]?heap;}
?
int ?Size() { return ?heapSize;}
?MaxHeap
< T >& ?Insert( const ?T & ?x);
?MaxHeap
< T >& ?Delete(T & ?x);
?
void ?MakeHeap(T? * ?a,? int ?size,? int ?ArraySize);
?T?Max()
?
{
??
if (heapsize? > ? 0 )????? // 判溢出
?? return ?heap[ 1 ];
?}

private :
?T
* ?heap;
?
int ?heapSize;
?
int ?MaxSize;?
}
;

template?
< typename?T >
MaxHeap
< T > ::MaxHeap( int ?MaxHeapSize)?????????
{
?MaxSize?
= ?MaxHeapSize;
?heap?
= ? new ?T[MaxSize + 1 ];
?heapSize?
= ? 0 ;
}


template?
< typename?T >
MaxHeap
< T >& ?MaxHeap < T > ::Insert( const ?T & ?x)? // 堆的插入?由葉結(jié)點向上找位置?在sort中是不需要插入的
{
?
if (heapSize? < ?MaxSize)????
?
{
??heapSize
++ ;
??
int ?i? = ?heapSize,?ic? = ?i / 2 ;
??
while (ic? >= ? 1 )
??
{
???
if (x? <= ?heap[ic])? break ;
???heap[i]?
= ?heap[ic];
???i?
= ?ic;
???ic?
= ?i? / ? 2 ;
??}

??heap[i]?
= ?x;
?}

?
return ? * this ;
}


template?
< typename?T >
MaxHeap
< T >& ?MaxHeap < T > ::Delete(T & ?x)??????? // 堆的刪除?即根結(jié)點的刪除?從上到下
{
?
// 在操作上相當(dāng)與對最后一個結(jié)點從上到下的插入
? if (heapSize? > ? 0 )
?
{
??x?
= ?heap[ 1 ];
??T?y?
= ?heap[heapSize -- ];
??
int ?i? = ? 1 ,?ic? = ? 2 ;?????????????? // i記錄當(dāng)前查詢結(jié)點?ic記錄其子結(jié)點
?? while (ic? <= ?heapSize)???????????????
??
{
???
if (ic + 1 ? <= ?heapSize? && ?heap[ic]? < ?heap[ic + 1 ])?ic ++ ;
???
if (y? >= ?heap[ic])? break ;
???heap[i]?
= ?heap[ic];
???i?
= ?ic;
???ic?
= ? 2 * i;
??}

??heap[i]?
= ?y;
?}

?
return ? * this ;
}


template?
< typename?T >
void ?MaxHeap < T > ::MakeHeap(T? * ?a,? int ?size,? int ?ArraySize)? // 建堆:把數(shù)組堆化并處理成大根堆
{
?
// 堆化
?delete?[]?heap;
?heap?
= ? new ?T[size + 1 ];
?memcpy(heap,?a,?(size
+ 1 ) * sizeof (T));?????? // 此處不要忘記乘sizeof(T)
?heapSize? = ?size;
?MaxSize?
= ?ArraySize;
?
// 處理堆
? int ?i? = ?heapSize / 2 ;
?
for (;?i? >= ? 1 ;?i -- )???????????????????? // 從小到上依次調(diào)整
? {
??T?y?
= ?heap[i];
??
int ?ic? = ? 2 * i;
??
while (ic? <= ?heapSize)?
??
{
???
if (ic + 1 ? <= ?heapSize? && ?heap[ic + 1 ]? > ?heap[ic])?ic ++ ;
???
if (y? >= ?heap[ic])? break ;
???heap[ic
/ 2 ]? = ?heap[ic];
???ic?
= ? 2 * ic;
??}

??heap[ic
/ 2 ]? = ?y;
?}

}


template?
< typename?T >
void ?HeapSort(T? * ?a,? int ?n)
{
?MaxHeap
< T > ?H( 0 );
?H.MakeHeap(a,?n,?n);
?T?x;
?
for ( int ?i? = ?n;?i? >= ? 1 ;?i -- )
?
{
??H.Delete(x);
??a[i]?
= ?x;
?}

}


int ?main()
{
// ?freopen("heap.in",?"r",?stdin);
? int ?size,?i,? * ?a;
?printf(
" Please?input?the?size?of?array:\n " );
?scanf(
" %d " ,? & size);
?a?
= ? new ? int [size + 1 ];
?printf(
" Please?input?the?array?to?be?sorted:\n " );
?
for (i = 1 ;?i <= size;?i ++ )
??scanf(
" %d " ,? & a[i]);
?HeapSort(a,?size);
?
for (i = 1 ;?i <= size;?i ++ )
??printf(
" %4d " ,?a[i]);
?printf(
" \n " );
?system(
" Pause " );

?
return ? 0 ;
}


Feedback

# re: HEAP  回復(fù)  更多評論   

2006-09-15 17:26 by
heap, 好想學(xué), 不知道我為什么沒講heap的書...-_-

# re: HEAP  回復(fù)  更多評論   

2006-09-15 23:53 by Optimistic
第一次遇到HEAP的時候好喜歡啊 呵呵 真是一個好東東!

# re: HEAP  回復(fù)  更多評論   

2006-10-25 22:40 by Asp
不知道以后數(shù)據(jù)結(jié)構(gòu)會不會講……

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩一级黄| 国产精品久久激情| 免费成人性网站| 国产精品视频99| 欧美一区二区视频97| 国产亚洲一区二区三区在线观看| 中文亚洲视频在线| 激情婷婷亚洲| 午夜久久电影网| 久久亚洲一区二区| 欧美深夜福利| 免费成人av资源网| 亚洲另类黄色| 欧美大片在线看| 老司机一区二区三区| 国产精品久久久久aaaa九色| 久久精品30| 99国产精品视频免费观看| 久久久蜜桃一区二区人| 亚洲欧洲日产国码二区| 国产精品理论片| 国产精品色午夜在线观看| 米奇777超碰欧美日韩亚洲| 亚洲你懂的在线视频| 亚洲免费播放| 亚洲人成久久| 香蕉乱码成人久久天堂爱免费| 国产精品乱码| 久久久噜噜噜久久久| 香蕉精品999视频一区二区 | 亚洲成人在线视频网站| 亚洲精品亚洲人成人网| 99视频精品在线| 在线免费高清一区二区三区| 欧美日韩国产综合久久| 老司机免费视频久久| 午夜精品久久久久久99热软件| 99re热精品| 亚洲精品日韩在线观看| 欧美国产日本在线| 亚洲在线第一页| 久久免费视频网| 亚洲视频在线二区| 99在线观看免费视频精品观看| 国产日韩欧美在线看| 亚洲日本成人网| 亚洲在线网站| 亚洲视频国产视频| 久久综合999| 欧美成ee人免费视频| 99视频超级精品| 亚洲电影av在线| 亚洲精品永久免费| 久久九九免费视频| 欧美日韩免费高清| 国产精品毛片在线看| 91久久极品少妇xxxxⅹ软件| 亚洲一区二区毛片| 亚洲福利精品| 亚洲美女黄色| 久久精品日韩一区二区三区| 久久一区免费| 亚洲午夜精品久久| 国产精品久久久久一区二区三区共| 亚洲精品资源美女情侣酒店| 欧美成人精品在线| 欧美在线视频观看| 国产偷国产偷亚洲高清97cao| 亚洲欧洲视频| 欧美在线高清视频| 欧美久久久久久蜜桃| 国产精品观看| 亚洲精品资源| 久久久久久电影| 欧美一区日韩一区| 欧美午夜剧场| 国产亚洲精品久久久久久| 亚洲一区二区在线观看视频| 久久久综合网站| 亚洲欧洲一区| 欧美日韩中文字幕精品| 在线天堂一区av电影| 亚洲欧美综合精品久久成人| 亚洲国产精品一区制服丝袜| 欧美a一区二区| 久久国产精品一区二区| 国产精品丝袜91| 亚洲精品日韩激情在线电影| 欧美午夜视频网站| 欧美在线播放视频| 亚洲综合社区| 午夜一区在线| 亚洲自拍偷拍一区| 亚洲激情自拍| 在线综合视频| 亚洲精品欧美一区二区三区| 午夜精品一区二区三区四区| 国产一区二区三区久久| 日韩视频在线你懂得| 亚洲精品在线观| 久久久久久久久久久久久女国产乱 | 国产日韩一区二区三区| 亚洲一区国产| 欧美区高清在线| 欧美一区亚洲二区| 亚洲午夜在线| 国产精品影视天天线| 午夜精品久久久久久久久| 亚洲精品一区二区网址| 免费观看亚洲视频大全| 99国产精品久久久久久久| 欧美aⅴ一区二区三区视频| 宅男噜噜噜66国产日韩在线观看| 欧美激情欧美激情在线五月| 欧美中文字幕| 国产一区二区三区久久| 久久久久免费观看| 久久午夜国产精品| 欧美日韩精品国产| 欧美一区二区播放| 久久久777| 亚洲国产精品久久人人爱蜜臀 | 亚洲一级二级| 欧美激情亚洲激情| 欧美一区二区福利在线| 国产日韩欧美91| 亚洲精品久久久久久久久| 免费成年人欧美视频| 亚洲国产精品久久久久秋霞影院| 亚洲国产精品福利| 欧美激情五月| 久久精品国产亚洲高清剧情介绍 | 国产日韩欧美黄色| 一区二区av| 亚洲二区视频| 亚洲精品乱码久久久久久日本蜜臀 | 欧美日韩精品免费看| 日韩午夜av在线| 久久久青草婷婷精品综合日韩| av成人天堂| 亚洲欧美日韩精品综合在线观看 | 久久国产精品99国产精| 欧美激情在线| 亚洲精品影院| 在线精品国精品国产尤物884a| 国产精品久久久久av免费| 欧美日韩精品欧美日韩精品| 国产精品欧美一区二区三区奶水| 欧美日韩性视频在线| 国产欧美日韩综合一区在线观看| 国产精品视频一区二区三区| 欧美日韩国产123| 国产视频在线一区二区| 国产精品视频一区二区高潮| 国产精品久久久久久久久免费桃花| 国产精品国产a级| 欧美大片一区二区三区| 欧美日韩国产在线观看| 红桃视频亚洲| 免费日韩一区二区| 久久三级视频| 小黄鸭精品aⅴ导航网站入口 | 红桃视频国产一区| 久久久欧美一区二区| 欧美成人午夜视频| 日韩视频在线观看国产| 国产精品国产三级国产普通话99| 亚洲制服av| 欧美成人午夜77777| 这里只有精品丝袜| 国产日本精品| 久久久久www| 91久久久久久久久| 亚洲欧美综合网| 在线看片成人| 欧美三级电影一区| 欧美综合国产精品久久丁香| 欧美黑人在线观看| 午夜精品久久久久久久99水蜜桃| 国模 一区 二区 三区| 欧美a一区二区| 亚洲女优在线| 亚洲国产一区二区三区在线播| 亚洲一区三区在线观看| 一区在线观看| 国产精品美女久久| 嫩模写真一区二区三区三州| 亚洲一二三区精品| 91久久精品一区二区别| 久久精品视频在线| 中日韩在线视频| 亚洲国产免费看| 国产农村妇女毛片精品久久莱园子| 麻豆freexxxx性91精品| 午夜日韩在线观看| 一区二区精品| av成人黄色| 亚洲乱码精品一二三四区日韩在线 | 香蕉成人久久| 99re8这里有精品热视频免费|