算法學習
C++ 及算法
C++博客
首頁
新隨筆
聯系
管理
最小堆的實現(c++模板)
#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
閱讀(4360)
評論(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
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
留言簿
(5)
給我留言
查看公開留言
查看私人留言
隨筆分類
動態規劃(13)
數據結構(11)
搜索(9)
圖論(10)
未分類(6)
ACMers
搜索
積分與排名
積分 - 110037
排名 - 231
最新隨筆
1.?換個博客,重新開始學習。。。
2.?pku 1691 Painting A Board 狀態壓縮DP
3.?HDU 1255
4.?PKU 1151
5.?2009年ACM-ICPC亞洲區預選賽共設十五個賽區如下(按現場賽日期排序)
6.?acmer必看的26個對acm態度
7.?ZJU 3228 Searching the String ( AC 自動機 )
8.?Pku 3169 Layout
9.?Pku 1986 Distance Queries
10.?Pku 1276 Cash Machine
最新評論
1.?re: AVL樹的插入和刪除操作
評論內容較長,點擊標題查看
--jasonkent27@163.com
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 Darren
午夜精品久久久久久影视777
|
久久久久久国产精品美女
|
热re99久久精品国99热
|
伊人久久精品无码二区麻豆
|
久久99久久成人免费播放
|
国产福利电影一区二区三区久久老子无码午夜伦不
|
91精品国产91久久久久久蜜臀
|
亚洲欧美成人综合久久久
|
青草国产精品久久久久久
|
99精品国产在热久久
|
99久久精品免费看国产一区二区三区
|
超级碰碰碰碰97久久久久
|
久久久久久综合网天天
|
日韩人妻无码精品久久久不卡
|
久久久久国产精品熟女影院
|
久久国产色AV免费观看
|
亚洲国产精品一区二区久久
|
97久久精品午夜一区二区
|
久久精品综合一区二区三区
|
久久久久亚洲精品男人的天堂
|
色播久久人人爽人人爽人人片AV
|
一本色道久久88综合日韩精品
|
色妞色综合久久夜夜
|
99久久99久久精品免费看蜜桃
|
久久香蕉国产线看观看乱码
|
久久综合综合久久97色
|
亚洲精品午夜国产va久久
|
成人免费网站久久久
|
久久精品亚洲乱码伦伦中文
|
亚洲人成无码久久电影网站
|
久久99久久99精品免视看动漫
|
久久精品国产精品国产精品污
|
人人狠狠综合久久亚洲
|
97久久久久人妻精品专区
|
成人综合久久精品色婷婷
|
亚洲国产精品久久久久婷婷软件
|
天天综合久久一二三区
|
国产精品毛片久久久久久久
|
久久久久国产亚洲AV麻豆
|
99久久婷婷国产综合亚洲
|
伊人久久大香线蕉成人
|